TelephonyManager.CALL_STATE_RINGING
またはCALL_STATE_IDLE
のようなアンドロイドの着信状況を検出できる方法はありますか?
着信コールに応答した場合、TELEPHONY MANAGER APIのステータスは何ですか
着信コールが応答されなかった場合は、TELEPHONY MANAGER APIのステータスはどうなりますか?
この問題に関しては、誰でも助けてくれますか?
アドバンスandroidの着信状態を検出する方法
0
A
答えて
2
のおかげで通話がACTION_ANSWER
意図を処理するためにBroadcastReceiver
を作成する必要になったときの状態を取得します。
ACTION_PHONE_STATE_CHANGED
にはBroadcastReceiver
を追加し、TelephonyManager
コール状態の変更を監視することもできます。私は、通話中または通話中に通話ステータスの動作が完全にわからないが、BroadcastReceiver
を使用してかなりすぐに試すことができます。
AndroidManifest.xml
に受信者を登録することを忘れないでください。
6
これは私が
マニフェストファイルやったことです:私はあなたに別のGoogle アンドロイドを救う私のBroadcastReceiver(IncomingCallReceiver)で
<receiver android:name="com.xxx.xxx.zzz.IncomingCallReceiver" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"></action>
</intent-filter>
</receiver>
フィールド
private static String previousCallingNumber = null;
private static String previousState = null;
private String RINGING = TelephonyManager.EXTRA_STATE_RINGING;
private String OFFHOOOK = TelephonyManager.EXTRA_STATE_OFFHOOK;
private String IDLE = TelephonyManager.EXTRA_STATE_IDLE;
public void onReceive(final Context context,Intent intent) {
final Bundle extras = intent.getExtras();
String state= null;
if (extras != null)
{
state = extras.getString(TelephonyManager.EXTRA_STATE);
}
/**
* This part of the code records that a call was recieved/attended or missed.
*
*/
else if (state!=null && state.equals(OFFHOOOK))
{
if(previousState!=null)
{
if(previousState.equals(RINGING) && previousCallingNumber!=null)
{
/**
* received call, the ringing call has been attended.
*/
String msisdn = MSISDNPreFixHandler.fixMsisdn(previousCallingNumber);
Log.i("IncomingCallReceiver", "Incoming Received Call Saved: "+msisdn);
}
}
/**
* Else the Incoming Call receiver is triggered when an outgoing call is made.
*
*/
}
else if (state!=null && state.equals(IDLE))
{
String incomingNumberForMissedCall = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
String msisdn = MSISDNPreFixHandler.fixMsisdn(incomingNumberForMissedCall);
if(incomingNumberForMissedCall!=null)
{
/**
* missed call, the ringing call has been missed.
*/
Log.i("IncomingCallReceiver", "Missed Call Saved: "+msisdn);
}
}
/**
* Very important to keep the previous state & number in cache ,
* as through it we can recognize the received attended call.
*
*/
previousState = state;
previousCallingNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
}
関連する問題
- 1. バックグラウンド状態で着信/発信イベントを取得する方法
- 2. 着信を検出し管理する方法(Android)
- 3. Androidの接続状態の変更を検出する際の競合状態
- 4. iOS:着信SMSを検出
- 5. アンドロイドの現在の充電状態を検出する方法
- 6. 指示内の現在の状態を検出する方法
- 7. iOSでコンパスのキャリブレーションスイッチの状態を検出する方法
- 8. TCPソケットの切断状態を検出する方法
- 9. Unix上でマウスの状態を検出する方法
- 10. GIFの状態を検出する方法
- 11. Assembly Langauge X86のオーバーフロー状態を検出する方法
- 12. ProgressDialogの状態を検出する方法
- 13. 着信を検出するiphone 5
- 14. Lyncで着信を検出する
- 15. broadcastreceiverで発信コールの終了状態を検出する
- 16. ウェブサイト着信http検出
- 17. Android Phoneの接続状態をリモートで検出する
- 18. Twilio iOS SDKでビジー状態を検出する方法は?
- 19. CDトレイの状態を検出する
- 20. UWPのシステム状態を検出する
- 21. Doze状態の検出
- 22. Androidチェックボックス状態検査
- 23. 着信要求のデータ型を検出
- 24. gammuのSMSを使用して着信コールを検出する方法は?
- 25. Eclipse RCPアプリケーション - アプリケーションがアイドル状態のときの検出方法
- 26. SAPI TTSエンジンがビジー状態のときの検出方法
- 27. iOSバックグラウンドでのコール状態の検出方法は?
- 28. Androidで特定の番号の着信電話を検出する
- 29. Androidで発信通話の状態を処理する方法は?
- 30. android firebaseにログイン状態とログアウト状態を保持する方法は?
を.permission.READ_PHONE_STATE – Gubatron