0

我有一个BroadcastReceiver与意图过滤器来捕捉android.intent.action.NEW_OUTGOING_CALL。Android接收器忽略NEW_OUTGOING_CALL

我读了很多教程,并在这里回答了有关处理NEW_OUTGOING_CALL意图的问题,但我无法使这个工作成功。 我的目标是记录我的BroadcastReceiver收到的意图android.intent.action.NEW_OUTGOING_CALL。我无法使这个简单的事情起作用。

这里是我的代码:

的Manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="net.vannus.broadcasttest"> 

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <receiver android:name=".TestReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="android.intent.action.PHONE_STATE" /> 
      </intent-filter> 
     </receiver> 
    </application> 

</manifest> 

这是广播接收器(TestReceiver.java)代码

package net.vannus.broadcasttest; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.util.Log; 

public class TestReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     Log.w("###TEST###",intent.getAction()); 
    } 
} 

该项目还包含没有空MainActivity功能。 执行项目的主要活动是启动,但是当我尝试拨打或接听电话时没有写入日志。 我在模拟器(Android 7)和摩托罗拉G4手机(Android 6.0)上测试了代码,但logcat上没有记录任何内容。 我正在使用Android Studio 2.3

我在做什么错?

感谢

Vannus

回答

1

的解决方案很简单....手机上的去设置 - >应用程序选择应用程序,让手机的许可。 线索来搜索logcat的时候我发现这个错误

03-05 20:18:57.090 1547年至1775年/ system_process W/BroadcastQueue:权限拒绝:接收意图{ACT = android.intent.action.NEW_OUTGOING_CALL FLG = 0x10000010(有额外)}到net.vannus.broadcasttest/.TestReceiver需要android.permission.PROCESS_OUTGOING_CALLS由于发送者android(uid 1000)。