着信コールと発信コールを区別するにはどうすればよいですか。 の両方の場合、モバイルはオフフック状態ですが、着信コールの場合、呼び出し状態になり、オフフック状態になります。さまざまな電話の状態の区別
このコードを試しましたが、効果的ではありません。リンギング変数は常にfalseです。事前に と私は発信番号を取得することができますどのように別の質問があります。..おかげ
public class states extends BroadcastReceiver {
boolean Ringing = false;
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)) {
Toast.makeText(context, "Ringing", Toast.LENGTH_SHORT).show();
Ringing = true ;
}
else if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_OFFHOOK)) {
if (Ringing) {
// do nothing
}else{
// do something
}
else if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_IDLE)) {
Ringing = false ;
}
}
}
これらは私の権限ある
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<receiver android:name=".states">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
を取得するための
。ではない? –
いいえ、私が電話している番号を意味します.. – user8151481
私はちょうど答えを編集し、電話機をチェックします。電話番号 –