코드를 통해 수신/발신 SMS 메시지를 차단하는 확실한 방법을 아는 사람이 있습니까? 실제 SMS 메시지가 수신되고 있으면 정상이지만 수신중인 SMS의 모든 알림을 차단하고 싶습니다. 또한 사용자는 SMS 메시지를 보내거나 (심지어는 심지어는 입력 할 수도) 허용해서는 안됩니다. 그게 가능하니?안드로이드에서 수신/발신 SMS 차단하기
감사합니다.
코드를 통해 수신/발신 SMS 메시지를 차단하는 확실한 방법을 아는 사람이 있습니까? 실제 SMS 메시지가 수신되고 있으면 정상이지만 수신중인 SMS의 모든 알림을 차단하고 싶습니다. 또한 사용자는 SMS 메시지를 보내거나 (심지어는 심지어는 입력 할 수도) 허용해서는 안됩니다. 그게 가능하니?안드로이드에서 수신/발신 SMS 차단하기
감사합니다.
들어오는 문자의 차단과 관련하여. 브로드 캐스트 리시버를 높은 우선 순위로 등록하면 시스템 앱이 호출되기 전에 코드가 호출됩니다. 방송 수신기보다 방송을 중단 할 수 있으며 다른 응용 프로그램에서는 방송을 볼 수 없습니다. 매니페스트
레지스터 수신기
<receiver android:name=".SmsReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
다음 방송 수신기 :
@Override
public void onReceive(Context context, Intent intent) {
abortBroadcast();
}
그 일을 했습니까? 나에게 적합하지 않다. ( –
@Vishnu Mohan G : 가장 높은 우선 순위는 1000이고 우선 순위가 1000 인 수신기를 등록한다. 그런 다음 onReceive 메소드에서 this.abortBroadcast()가 방송을 중단한다. – blackfyre
Android Document say "값은 정수 여야하며, "100"과 같이 더 높은 숫자가 더 높은 우선 순위를 가지며 기본값은 0입니다. 값은 -1000보다 크고 1000보다 작아야하므로 문당 999 여야합니다 http://developer.android .com/guide/topics/manifest/intent-filter-element.html –
당신이 보내는 문자 메시지를 차단할 수 없습니다.
다음은 들어오는 텍스트 차단에 사용됩니다.
SmsReceiver.java
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class BroadCastReceiver extends BroadcastReceiver
{
/** Called when the activity is first created. */
private static final String ACTION = "android.provider.Telephony.SEND_SMS";
public static int MSG_TPE=0;
public void onReceive(Context context, Intent intent)
{
String MSG_TYPE=intent.getAction();
if(MSG_TYPE.equals("android.provider.Telephony.SMS_RECEIVED"))
{
// Toast toast = Toast.makeText(context,"SMS Received: "+MSG_TYPE , Toast.LENGTH_LONG);
// toast.show();
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++)
{
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}
// show first message
Toast toast = Toast.makeText(context,"BLOCKED Received SMS: " + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
toast.show();
abortBroadcast();
for(int i=0;i<8;i++)
{
System.out.println("Blocking SMS **********************");
}
}
else if(MSG_TYPE.equals("android.provider.Telephony.SEND_SMS"))
{
Toast toast = Toast.makeText(context,"SMS SENT: "+MSG_TYPE , Toast.LENGTH_LONG);
toast.show();
abortBroadcast();
for(int i=0;i<8;i++)
{
System.out.println("Blocking SMS **********************");
}
}
else
{
Toast toast = Toast.makeText(context,"SIN ELSE: "+MSG_TYPE , Toast.LENGTH_LONG);
toast.show();
abortBroadcast();
for(int i=0;i<8;i++)
{
System.out.println("Blocking SMS **********************");
}
}
}
}
의 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="APP.PACKAGE.NAMEHERE"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:resizeable="true"
android:anyDensity="true" />
<uses-feature android:name="android.hardware.telephony" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".APPACTIVITYHERE"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden" >
<service android:name=".MyService" android:enabled="true"/>
<receiver android:name="SmsReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_SENT"/>
</intent-filter>
</receiver>
<service android:name=".MyServiceSentReceived" android:enabled="true"/>
<receiver android:name="SmsReceiver">
<intent-filter android:priority="2147483645">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
매니페스트에서 멀리 취할 중요한 것은 서비스 블록, 수신기 블록은 , 그리고 권한.
다시 확인하십시오. 이것은 나를 미치게합니다. BroadcastReceiver를 통해 들어오는 SMS 알림을 차단하는 과정을 만들었지 만 나가는 SMS를 차단하면 나를 미치게 만듭니다 ... 이상적으로는 사용자가 메시징 앱을 열지 못하게하는 것이 좋습니다. 외부 프로세스 (즉, 메시징 앱)를 삭제할 수 있나요? 내가 restartPackage를 통해 그것을 시도했지만, 그 예기치 않게 내 애플 리케이션을 종료합니다. 권한/보안 문제로 인한 것이라고 생각하십니까? 아, 그리고 내가 왜 이것을해야하는지 궁금해하는 사람들을 위해, Textecution (www.textecution.com)과 비슷한 앱을 만들어야하기 때문입니다. 감사! –