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)。