在来电时重新启动Android应用

时间:2015-07-01 04:15:34

标签: android android-service telephonymanager

我正在创建一个应用程序,我想在有来电时立即启动服务。在android中有哪些方法可以做到这一点? 我知道广播接收器是单向的,但是我找不到任何广播意图来接听电话。

1 个答案:

答案 0 :(得分:2)

使用操作PHONE_STATE来检测来电。

将此添加到清单

 <receiver android:name="com.example.YourReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
        </receiver>

你的接收器

public class YourReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) {
        // This code will execute when the phone has an incoming call



    } else if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
            TelephonyManager.EXTRA_STATE_IDLE)
            || intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
                    TelephonyManager.EXTRA_STATE_OFFHOOK)) {
        // This code will execute when the call is disconnected


    }
}
}