10
を取得することができ -ない私はこれが私のマニフェストファイルで追加TelephonyManager.CALL_STATE_RINGING
<receiver android:name=".ServiceReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.READ_PHONE_STATE">
</uses-permission>
その後、私のサービスクラスは、このようなものです -
public class ServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
MyPhoneStateListener phoneListener = new MyPhoneStateListener();
TelephonyManager telephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}
}
と私のPhoneStateListenerです -
public class MyPhoneStateListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
Log.i("telephony-example", "State changed: " + stateName(state));
}
String stateName(int state) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
Log.d("DEBUG", "***********IDLE********");
return "Idle";
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d("DEBUG", "***********OFFHOOK********");
return "Off hook";
case TelephonyManager.CALL_STATE_RINGING:
Log.d("DEBUG", "***********RINGING********");
return "Ringing";
}
return Integer.toString(state);
}
}
私はIDLE状態を見ることができます。
しかし、私は私がリンギング状態を取得しないでください。どうして?
感謝を... :)リンギング はところであなたはその後、電話が鳴ると、アプリに戻ったときに、それは私のアプリを一時停止させる方法を知っている得たときに電話終わった? – nasaa
AFAIK、あなたのアプリがアクティビティを実行している場合は、onPauseとonStopが呼び出され、電話アクティビティが前面に表示されます。あなたがサービスを実行しているなら、あなたがやっている仕事を一時停止したい理由は分かりません。それでもあなたが上記の方法を使用して電話が鳴っていることを知りたい場合は、アプリケーションのロジックに応じて作業をやめ、後で再開しますが、サービスからその理由を知ることはできません! – advantej
よく問題は私が歌を演奏していることですが、電話が鳴ったときにそれが止まらないので私は尋ねました。 – nasaa