我尝试使用 "android.intent.action.CALL_PRIVILEGED" 在 android 中运行 USSD 代码,但即使我使用所需的权限它也会抛出 SecurityException。
代码:
String encodedHash = Uri.encode("#");
String ussd = "*141" + encodedHash;
startActivityForResult(new Intent("android.intent.action.CALL_PRIVILEGED",
Uri.parse("tel:" + ussd)), 1);
安卓 list 文件:
<uses-permission android:name="android.permission.CALL_PRIVILEGED"></uses-permission>
但我仍然收到 SecurityException
异常:
AndroidRuntime(2756): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL_PRIVILEGED dat=tel:xxxxx cmp=com.android.phone/.PrivilegedOutgoingCallBroadcaster }from ProcessRecord{418f47c0 2756:com.usdrun/u0a10046} (pid=2756, uid=10046)requires android.permission.CALL_PRIVILEGED
我不明白为什么会抛出 SecurityException。
“android.permission.CALL_PRIVILEGED”是否需要系统权限? 如果是,我该如何在我的应用程序中使用它?
最佳答案
Is "android.permission.CALL_PRIVILEGED" required System Permission ?
是的。
if yes than how can i use this in my Application ?
您的应用需要安装在系统分区上(例如,由获得 root 权限的设备用户安装)或使用与其余固件签名相同的签名 key 进行签名(例如,由设备制造商或 ROM retrofit 商安装)。
关于java - android.intent.action.CALL_PRIVILEGED 是否需要系统权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21492713/