/ /起動後も電話の状態を聞く-android、broadcastreceiver、phone-state-listener

起動後も電話の状態を聞く - アンドロイド、放送受信機、電話状態リスナー

私のアプリでは、電話の状態イベント(つまり、着信、アイドルなど)を使用して聞きます Broadcast Receiver。以下のようにコーディングします。

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>

私の問題は私が始めたいです BroadCast Receiverデバイスが再起動された後、自動的に。私は持っています BroadCast Receiver 起動を聞くが、起動方法がわからない PhoneCallreceiver BroadCastレシーバー。

Manifest.xml

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

コード:

public class BootStarter extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
PhoneCallreceiver callreceiver = new PhoneCallreceiver();
context.registerReceiver(callreceiver,new IntentFilter(**what to put here**));
}
}

回答:

回答№1は0

私の質問に対する答えが見つかりました、phonestateを受信するためのintentfilterアクションは android.telephony.TelephonyManager.ACTION_PHONE_STATE_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));
}
}