Android 即使在开机后也可以收听手机状态

Android 即使在开机后也可以收听手机状态,android,broadcastreceiver,phone-state-listener,Android,Broadcastreceiver,Phone State Listener,在我的应用程序中,我使用广播接收器收听手机状态事件(即收到的呼叫、空闲等)。代码如下: public class PhoneCallreceiver extends BroadcastReceiver { private boolean ringing; private boolean received; public PhoneCallreceiver() { } @Override public void onReceive(Context context

在我的应用程序中,我使用
广播接收器
收听手机状态事件(即收到的呼叫、空闲等)。代码如下:

public class PhoneCallreceiver extends BroadcastReceiver {
    private boolean ringing;
    private boolean received;

    public PhoneCallreceiver() {
    }

@Override
public void onReceive(Context context, Intent intent) {
    Log.v("ranjith", "enterted receiver");
    Bundle bundle = intent.getExtras();
    String incomingnumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
    String state = bundle.getString(TelephonyManager.EXTRA_STATE);
    Log.v("ranjapp", state);

    if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
        ringing = true;
        received = false;
    } 
}
Manifest.xml

    <receiver
        android:name=".PhoneCallreceiver"
        android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE"/>
        </intent-filter>
    </receiver>
   <receiver
        android:name=".backend.BootStarter"
        android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>
代码:


找到了我问题的答案,接收phonestate的intentfilter操作是android.telephony.TelephonyManager.action\u PHONE\u STATE\u CHANGED

我的更新代码如下:

public class BootStarter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) { 
    PhoneCallreceiver callreceiver = new PhoneCallreceiver();
            context.registerReceiver(new PhoneCallreceiver(), new IntentFilter(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED));
        }
    }

BootStarter是否未分层或未正确注册电话状态广播接收器?BootStarter正在启动,但如何在BootStarter的onReceive内启动PhoneCallReceiver?是否尝试将引导完成的意图筛选器添加到.PhoneCallReceiver?如果我这样做,则会在引导后调用PhoneCallReceiver,但只有在接收到调用时才需要执行该代码
public class BootStarter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) { 
    PhoneCallreceiver callreceiver = new PhoneCallreceiver();
            context.registerReceiver(new PhoneCallreceiver(), new IntentFilter(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED));
        }
    }