2016-05-07 3 views
0

Я пытался заблокировать все входящие sms в моем устройстве Android.Заблокировать входящие SMS

Это код, я был using-

public class SmsReceiver 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; 

@Override 
public void onReceive(Context context, Intent intent) { 
    String MSG_TYPE = intent.getAction(); 
    if (MSG_TYPE.equals("android.provider.Telephony.SMS_RECEIVED")) { 

     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++) { 
      Log.i("log", "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++) { 
      Log.i("log", "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++) { 
      Log.i("log", "Blocking SMS **********************"); 
     } 

    } 

} 

} 

Manifest Файл-

<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> 

Это показывает мне блокирование смс, но опять смс получил. поэтому этот кусок кода не работает для меня. Я следовал this ВОПРОС.

Другие вопросы я смотрю на это -

Block SMS in android

Android Block Incoming SMS using BroadCastReceiver

ли кто-нибудь есть какие-либо предложения для этого.

+0

так может кто-нибудь сказать, почему я получил это -1. ? –

ответ

0

Вы не можете блокировать входящие SMS-сообщения с API 19 (KitKat), если ваше приложение не является приложением по умолчанию для обмена сообщениями, и даже тогда вы можете остановить их только от того, чтобы быть сохраненным в Поставщике SMS.

Передача SMS_RECEIVED больше не может быть прервана, поэтому любое приложение, слушающее ее, все равно получит его. Кроме того, приложение по умолчанию получает другую трансляцию в любом случае - SMS_DELIVER - которое не получено никаким другим приложением и не может быть перехвачено.

Если ваше приложение является стандартным SMS-приложением, оно отвечает за запись входящих сообщений поставщику SMS, поэтому, если вы не хотите, чтобы они были сохранены там, просто не записывайте их. Однако это не повлияет на широковещательную передачу SMS_RECEIVED, которая по-прежнему будет доставлена ​​в любое зарегистрированное для него приложение, хотя эти приложения не смогут записать их в Провайдер.

Следующая страница блога обсуждает изменения API SMS и содержит сведения о требованиях к приложению в качестве приложения обмена сообщениями по умолчанию. Обратите внимание, однако, что приложение по умолчанию отвечает за многие, многие вещи, включая MMS, а также - и писать полномасштабный клиент обмена сообщениями - это не тривиальная задача.

Getting Your SMS Apps Ready for KitKat

+0

любые официальные документы о том, что вы говорите, пожалуйста. –

+0

Добавил ссылку на мое сообщение. –

+0

, поэтому я должен сделать приложение sms для этого. damn ... –