Подтвердить что ты не робот

Проблема с Intent.ACTION_CALL (SecurityException)

Я использую это намерение, чтобы набрать номер, который записан в поле 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
4b9b3361

Ответ 1

Цель Intent.ACTION_DIAL (вместо Intent.ACTION_CALL) не требует разрешения. Он вызывает только дозвонщик, поэтому пользователь может сам решить, звонить или нет, что в большинстве случаев является лучшим пользовательским интерфейсом.

Ответ 2

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"/>

Ответ 3

В ошибке есть ключ: 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>

Подробнее см. здесь.

Ответ 4

Также вы можете попробовать

<uses-permission android:name="android.intent.action.CALL_PRIVILEGED"></uses-permission>

он устарел постоянным, но он помогает мгновенно начать вызов без открытия активности дозвона

Ответ 5

Добавьте разрешение в свой manifest.xml так

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

Подробнее о Permissions здесь