2013-04-09 8 views

उत्तर

8

निम्नलिखित का प्रयास करें:

intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED"); 

आशा इस मदद करता है।

0

सर्वोच्च प्राथमिकता के साथ अपने मेनिफ़ेस्ट में एक रिसीवर रजिस्टर:

<receiver android:name=".SmsReceiver"> 
     <intent-filter android:priority="9999"> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver>   

BroadcastReceiver वर्ग बनाएँ:

Bundle bundle = intent.getExtras(); 
if (bundle != null && bundle.containsKey("pdus")) { 
    Object[] pdus = (Object[]) bundle.get("pdus"); 
    SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdus[0]); 
    String senderNumber = sms.getOriginatingAddress(); 
    if(senderIsInBlackList(senderNumber)) { 
     abortBroadcast(); 
    } 
}     
+0

लिए जाँच करनी चाहिए प्राथमिकता 0 होना चाहिए नहीं है? Google ब्लॉग 0 के मुताबिक "अन्य सभी के बाद दौड़ें" –

+0

वह कुछ आने वाले संदेशों को अवरुद्ध करना चाहता है, इसलिए इस ऐप में उच्चतम प्राथमिकता होनी चाहिए। –

1

अपने AndroidManifest में रिसीवर घोषित:

public class SmsReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    } 
} 

onReceive विधि को लागू करें। एक्सएमएल:

<receiver 
     android:name="com.example.YourSmsReceiver" 
     android:exported="true" > 
     <intent-filter android:priority="1000" > 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
</receiver> 

आशा इस मदद करता है, Yaron

0

आप अनुमति

if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) { 
    ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.RECEIVE_SMS}, 0); 
} else { 
     // register sms receiver 
     IntentFilter filter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION); 
     registerReceiver(smsReceiver, filter); 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 

    if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) { 

    } else { 
     // register sms receiver 
     IntentFilter filter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION); 
     registerReceiver(smsReceiver, filter); 
} 
    } 
संबंधित मुद्दे