gpt4 book ai didi

android - 权限拒绝 - 需要已授予的 android.permission.CALL_PHONE

转载 作者:行者123 更新时间:2023-11-30 02:54:38 29 4
gpt4 key购买 nike

我正在使用 Notification 的操作发起调用:

Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:+48123456"));
PendingIntent pCallIntent = PendingIntent.getActivity(context, 0, callIntent, 0);

Notification notification = new Notification.Builder(context)
.addAction(android.R.drawable.ic_menu_call, "Call", pCallIntent)
.build();

notificationManager.notify(0, notification);

触发 Call 按钮后,我得到以下 SecurityException:

05-06 20:00:09.275    3426-6293/system_process W/ActivityManager﹕ Unable to send startActivity intent
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxxxx flg=0x10000000 cmp=com.android.phone/.OutgoingCallBroadcaster bnds=[128,231][423,327] } from null (pid=-1, uid=10142) requires android.permission.CALL_PHONE
at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1191)
at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:746)
at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3391)
at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:252)
at com.android.server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:3272)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:237)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2146)
at android.os.Binder.execTransact(Binder.java:404)
at dalvik.system.NativeStart.run(Native Method)

我在 AndroidManifest 中设置了适当的权限:

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

我应该怎么做才能修复它?

最佳答案

A PendingIntent应该包括创建它的“安全上下文”,所以我有点惊讶这不起作用,尽管我肯定从未尝试过从 Notification 调用电话号码。 .

您可能的选择是:

  • 切换到DIAL_PHONE ,因为这不需要许可。

  • 有你的 PendingIntent通往BroadcastReceiver的路线你的,它转身调用电话号码。确保这是未导出的 BroadcastReceiver (即没有 <intent-filter> ),因此其他应用不会向您发送广播,导致您在可能不合时宜的时候调用该号码。

关于android - 权限拒绝 - 需要已授予的 android.permission.CALL_PHONE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23501885/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com