Revoked permission android.permission.CALL_PHONE

Evgeniy Mishustin picture Evgeniy Mishustin · Nov 2, 2015 · Viewed 34.9k times · Source

I'm trying to programmatically call to a number with following code:

 String number = ("tel:" + numTxt.getText());
 Intent intent = new Intent(Intent.ACTION_CALL);
 intent.setData(Uri.parse(number));
 startActivity(intent);

I've set the permission in the Manifest:

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

I'm working with real device for testing and debugging, it is Nexus 5 with Android M, my compileSdkVersion is 23. I'm getting the following Security Exception:

error: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxx cmp=com.android.server.telecom/.components.UserCallActivity } from ProcessRecord{cbbd7c1 5228:com.dialerTest.DialerApp/u0a96} (pid=5228, uid=10096) with revoked permission android.permission.CALL_PHONE

I've searched the web and this community for similar Q/A and couldn't find the answer. Any help will be appreciated.

Answer

Artur Szymański picture Artur Szymański · Nov 2, 2015

In android 6.0 (Api lvl 23) we have something called "Runtime Permissions". You have to read about it.

You can find documentation here.