3 回答
TA贡献1808条经验 获得超4个赞
由于您的服务已经设置,只需在您的服务中添加广播接收器:
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);
并且您很高兴收到您提到的过滤器的广播onCreate。如果需要,请确保添加任何权限。例如
<uses-permission android:name="android.permission.RECEIVE_SMS" />
TA贡献1828条经验 获得超13个赞
Service
如果尚未运行,则此实现将启动,如果已运行,Intent
则将传递新的(用于检索onStartCommand
)。如果你只希望它运行的时候Service
是实时的,你可以以编程方式启用/禁用Receiver
通过组件PackageManager
的setComponentEnabledSetting()
。
- 3 回答
- 0 关注
- 382 浏览
添加回答
举报