【问题标题】:How to detect an Outgoing call in android如何在android中检测拨出电话
【发布时间】:2016-10-18 18:07:10
【问题描述】:

我只是想知道是否有代码可以检测我是否正在使用默认的 android 手机应用程序呼叫某人.. 这是我的代码,当然我需要更多提示

if(intent.getAction().equals("android.intent.action.PHONE_STATE")){
        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
            call = true;
            Log.v("OUTGOING", String.valueOf(call));
            //Do-NOTHING
        } else {
            if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)){
                if (call == false) {
                    Log.v("OUTGOING", String.valueOf(call));
                    Log.v("CALL", "Call from " + numberPhone);
                    numberPhone = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
                }
            }
        }
}

【问题讨论】:

  • 您是否在应用的清单中添加了必要的广播接收器?
  • @rodit 我已经为权限和意图过滤器这样做了

标签: android phone-call telephonymanager outgoing-call


【解决方案1】:
public class OutgoingReceiver extends BroadcastReceiver {
 public OutgoingReceiver() {
 }

 @Override
 public void onReceive(Context context, Intent intent) {
     String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

     Toast.makeText(ctx, 
       "Outgoing: "+number, 
       Toast.LENGTH_LONG).show();
 }

并设置接收器

<receiver android:name=".OutgoingCallReceiver" >
<intent-filter>
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>

添加权限

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

你必须注册意图

IntentFilter intentFilter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL);
ctx.registerReceiver(outgoingReceiver, intentFilter);

【讨论】:

  • S.Raut 你能解释一下代码吗?我只需要知道检测到拨出电话的条件我已经将我的类命名为incomingCall,所以我从第一次开始就专注于来电,所以在拨出电话的情况下,应用程序将什么也不做..
  • 对于拨出电话,系统会发送一个广播动作 android.intent.action.NEW_OUTGOING_CALL。 我们创建了一个名为 OutgoingReceiver 的广播接收器来检测它
  • 所以你的意思是我需要用另一个广播接收器创建另一个类?
  • 请仔细阅读关于 PROCESS_OUTGOUNG_CALLS 权限的新谷歌安全(该应用可能被禁止):support.google.com/googleplay/android-developer/answer/9047303
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多