我尝试使用“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);
AndroidManifest.xml:
<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”是否需要系统权限? 如果是,我怎么能在我的申请中使用它?
答案 0 :(得分:1)
“android.permission.CALL_PRIVILEGED”是否需要系统权限?
是
如果是,我怎么能在我的申请中使用它?
您的应用程序需要安装在系统分区上(例如,由有根设备的用户)或使用签署其余固件的相同签名密钥签名(例如,由设备制造商或ROM修改程序)。 / p>