2017-09-19 3 views
1

私のプロジェクトでは、2回のコールの後に発信コールとイベントをトリガーするシナリオがありますが、アンドロイド6または7では、phone_state権限を与えても動作しません。発信コールレシーバはAndroid 7.0以上で動作していますか?

public void onReceive(Context context, Intent intent) { 
     Thread.setDefaultUncaughtExceptionHandler(new CustomExceptionHandler(className)); 
    //String state = intent.getStringExtra(TelephonyManager.EXTRA_PHONE_NUMBER); 


     if (intent. getAction(). equals (Intent. ACTION_NEW_OUTGOING_CALL)) 
     { 
      checkOutgoingCallCounter(shPreference,context); 
     } 

    } 

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

答えて

1

READ_PHONE_STATE、実行時に要求されなければならない "危険" の権限です。許可を受けているかどうかを確認するAPIはContextCompatですが、アクセス許可を要求するAPIはActivityCompatであるため、許可をリクエストするにはActivityが必要です。 BroadcastReceiverは要求できません。 (私の頭の上から離れて、あなたのBroadcastReceiverは、許可が与えられるまで呼び出されることさえないと思います)。

+0

私は危険な許可を与えるための活動をしていますKevinしかし、2回目のコール(アプリケーションがバックグラウンドにある)後にアプリケーションが開始され、受信者の呼び出しがトリガーされ、次に透過的なアクセス許可の呼び出しがトリガーされます。 最初にブロードキャストを呼び出す必要がありますか? –

+0

そしてもう1つKevin、私のアプリケーションはシステムアプリケーションなので、私はこの前許可を与えて、それはandroid 6.0まで動作します。

+0

@SachinChauhan申し訳ありませんが、私は 'READ_PRIVILEGED_PHONE_STATE'の経験はありません。 [この質問](https://stackoverflow.com/questions/43967703/read-privileged-phone-state-permission-error)と同じエラーが表示されますか? –

関連する問題