के रूप में अपने सेवा पहले ही सेट है, बस एक प्रसारण रिसीवर आपकी सेवा में जोड़ें: में
private final BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals("android.provider.Telephony.SMS_RECEIVED")){
//action for sms received
}
else if(action.equals(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED)){
//action for phone state changed
}
}
};
आपकी सेवा onCreate
ऐसा करते हैं:
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
filter.addAction(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED);
filter.addAction("your_action_strings"); //further more
filter.addAction("your_action_strings"); //further more
registerReceiver(receiver, filter);
और में अपनी सेवा के onDestroy
:
unregisterReceiver(receiver);
और आप किस ई के लिए प्रसारण प्राप्त करने के लिए जाने के लिए अच्छे हैं verStartCommand में आपके द्वारा उल्लेख किए जाने वाले वर्ट फ़िल्टर। यदि आवश्यक हो तो कोई अनुमति जोड़ना सुनिश्चित करें। उदाहरण के लिए
<uses-permission android:name="android.permission.RECEIVE_SMS" />
मैं टोस्ट संदेश जबकि इनकमिंग कॉल प्रदर्शित करना चाहते हैं। मैंने यह फ़िल्टर जोड़ा .addAction ("android.provider.Telephony.LISTEN_CALL_STATE"); तो शो टोस्ट कैसे करें। – Prasad
मैंने देखा है कि भेजने के दौरान intent.setData (myUri) द्वारा डेटा पास नहीं कर सकता है ब्रॉडकास (इरादा) और braoadcastReceiver उस मामले में काम नहीं करता है, है ना? – deadfish
मैं सेवा जीवन चक्र के बारे में थोड़ा उलझन में हूं जब ब्रॉडकास्ट रिसीवर (मेरे मामले में ब्रॉडकास्ट रिसीवर) –