Ответ 1
Цель Intent.ACTION_DIAL (вместо Intent.ACTION_CALL) не требует разрешения. Он вызывает только дозвонщик, поэтому пользователь может сам решить, звонить или нет, что в большинстве случаев является лучшим пользовательским интерфейсом.
Я использую это намерение, чтобы набрать номер, который записан в поле setdataf Intent Но когда я запустил приложение и нажал кнопку вызова, где я поставил это намерение, я получил эту ошибку в 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
Цель Intent.ACTION_DIAL (вместо Intent.ACTION_CALL) не требует разрешения. Он вызывает только дозвонщик, поэтому пользователь может сам решить, звонить или нет, что в большинстве случаев является лучшим пользовательским интерфейсом.
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"/>
В ошибке есть ключ: 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>
Подробнее см. здесь.
Также вы можете попробовать
<uses-permission android:name="android.intent.action.CALL_PRIVILEGED"></uses-permission>
он устарел постоянным, но он помогает мгновенно начать вызов без открытия активности дозвона
Добавьте разрешение в свой manifest.xml
так
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
Подробнее о Permissions
здесь