0
我是新来的android编程。我有一个使用BroacastReciever拦截来电的程序。当我启动我的应用程序时,它开始工作。现在的问题是,当我重新启动我的android手机,这个BroadcastReciever不起作用。所以我假设我需要为此提供服务。但我不知道什么时候开始服务以及从哪里开始BroadcastReciever。如何让BroadcastReciever在重新启动后工作?
BroadcastReciever码 -
public class CallInterceptor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Service started", Toast.LENGTH_LONG).show();
Bundle extras = intent.getExtras();
if (extras != null) {
String state = extras.getString(TelephonyManager.EXTRA_STATE);
Toast.makeText(context, "Phone is " + state, Toast.LENGTH_LONG).show();
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
String phoneNumber = extras
.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
Toast.makeText(context, "Call from " + phoneNumber, Toast.LENGTH_LONG).show();
//sendSMS(phoneNumber);
//toggle ringer mode
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
toggleMode(am);
}
}
}
AndroidManifest文件 -
<receiver android:name="com.nagarro.service.CallInterceptor" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</action>
</intent-filter>
</receiver>
我不认为<action android:name="android.intent.action.BOOT_COMPLETED" />
工作。
此外,有没有可能做到这一点没有服务?请建议方法,这将帮助我拦截呼叫加班(即使在重新启动后)。
感谢您的标记更正...我知道我没有使用服务,但我的问题是,这段代码是否足够或我需要提供服务? –
感谢Mike ..我的代码现在正确地运行正确后,该标签.. –
其实我打算在后台永远运行这个BroacastReciever ...这是一个问题吗? –