5

私のアプリにDexterを実装しました。 CAMERA、EXTERNAL STORAGE、INTERNAL STORAGEの許可が得られます。 DexterとPHONE_CALL権限で電話したいと思います。私はこのような電話のための意図を呼び出すとき:デクスターでPHONE_CALL権限が動作しません

Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + strNum)); 
startActivity(callIntent); 

その後、Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or explicitly handle a potential SecurityException less... (Ctrl+F1)

警告startActivityショーは私がstartActivityが自己の許可をする理由私はその後、Dexterを実装していることを理解していませんか?許可、すなわちandroid.permission.CALL_PHONE 1を必要と

if (mContext.checkSelfPermission(Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) { 
    Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + strNum)); 
    startActivity(callIntent): 
} 

Intent.ACTION_CALL intent、:あなたのように許可を確認する必要があり23+ APIについては

答えて

2

。しかし、sdk> = 23の場合、実行時にManifest.permission.CALL_PHONEでチェックする必要があります。それは23以上のターゲットの転換のためのものです。

targetsdkversionを23未満に下げると、この延期は必要なくなり、Intent.ACTION_CALLは正常に動作します。

+0

私はそれを知っています。しかし、私は許可モデルのためにDexterライブラリを使用しました。なぜ私は自己の許可をチェックしなければならないのですか?もう一つは、 'Intent.ACTION_CALL'の代わりに' Intent.ACTION_DIAL'を使うと警告が表示されません。だから私は何をすべきか理解していない? –

+0

私の編集した答えをチェックしてください.. Intent.ACTION_DIALは直接電話をかけません。あなたが挿入した番号のダイヤラを起動します。そのため、Intent.ACTION_DIALは、ユーザが手動で電話をかける際に許可を必要としません..... –

+0

DEXTERだけでPHONE_CALLのアクセス許可を確認したい。それは可能かどうか?可能であればどのように? –

関連する問題