我使用此意图来拨打在Intent的setdatafield中写入的no 但是,当我运行应用程序并单击调用按钮,我把这个意图我在LogCat中得到了这个错误
06-14 14:08:10.137: ERROR/AndroidRuntime(2898): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:2125551212 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{43edbe18 2898:com.collabera.labs.sai/10102} (pid=2898, uid=10102) requires android.permission.CALL_PHONE
答案 0 :(得分:29)
Intent.ACTION_DIAL意图(而不是Intent.ACTION_CALL)不需要权限。它只会调出拨号器,因此用户可以决定是否打电话,这在大多数情况下都是更好的用户体验。
答案 1 :(得分:10)
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:03000000000"));
startActivity(intent);
添加权限
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
答案 2 :(得分:6)
错误中有一条线索:requires android.permission.CALL_PHONE
您需要在清单中声明android.permission.CALL_PHONE
权限:
<manifest android:installLocation="preferExternal" package="yourpackage"
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1" android:versionName="1">
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
.
.
.
</manifest>
有关详细信息,请参阅here。
答案 3 :(得分:2)
你也可以尝试
<uses-permission android:name="android.intent.action.CALL_PRIVILEGED"></uses-permission>
它被弃用了常量,但它有助于在没有拨号器活动开启的情况下立即开始呼叫
答案 4 :(得分:1)
在您的manifest.xml
中添加权限
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
详细了解Permissions
here