Android 电话呼叫权限在Dexter中不起作用
我已经在我的应用程序中实现了。摄像机、外部存储和内部存储许可都可以正常工作。我想打电话给您,请允许我打电话。当我为这样的电话打电话时:Android 电话呼叫权限在Dexter中不起作用,android,android-intent,android-permissions,android-phone-call,Android,Android Intent,Android Permissions,Android Phone Call,我已经在我的应用程序中实现了。摄像机、外部存储和内部存储许可都可以正常工作。我想打电话给您,请允许我打电话。当我为这样的电话打电话时: Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + strNum)); startActivity(callIntent); 然后startActivity显示警告调用需要权限,用户可能会拒绝该权限:代码应显式检查权限是否可用(使用checkPermission)或显式处理
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + strNum));
startActivity(callIntent);
然后startActivity
显示警告调用需要权限,用户可能会拒绝该权限:代码应显式检查权限是否可用(使用checkPermission)或显式处理潜在的SecurityException less。。。(Ctrl+F1)
我不明白为什么我已经实现了startActivity想要自我许可?对于API 23+,您应该检查许可,如下所示:
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\u CALL Intent
,它需要一个权限,即android.permission.CALL\u手机。但是对于sdk>=23,您需要在运行时使用Manifest.permission.CALL\u PHONE
检查。适用于targetedsdk23及以上版本
如果您将targetedsdkversion降低到23以下,则不需要此任务和
意图。调用操作将正常工作 我也有类似的问题。对我来说,当我试图打电话的时候,我的理由就显现出来了。我添加了manifest标签:
<uses-permission android:name="android.permission.CALL_PHONE" />
我不知道为什么除了使用Dexter运行时检查之外还要这样做,但它解决了我的问题。我知道这一点。但我使用了Dexter库作为权限模型。那么为什么我必须检查自我许可,另一件事是,如果我使用Intent.ACTION\u DIAL
而不是Intent.ACTION\u CALL
,那么它不会显示警告。所以我不明白我该怎么办?检查我编辑的答案。。Intent.ACTION\u拨号不会直接拨打电话。它会将您插入的号码显示在拨号器上。这就是为什么Intent.ACTION\u拨号在用户确认手动拨打电话时不需要权限的原因。我只想通过Dexter检查电话呼叫权限。有没有可能?如果可能的话,怎么做?是的,你可以把你的targetedsdk版本降低到23以下。。但是对于sdk>23,您应该检查它