Reputation: 3374
I want to add this permission to my Android manifest:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
But after I paste this permission in my manifest, it tests red underline and says:
permission is only granted to system apps
What can I do?
Upvotes: 26
Views: 64918
Reputation: 2457
Because this is the system level permission device developer not grant this so application development tools also warn against this so you have to
Simply Clean project & Rebuild this is it
Upvotes: 1
Reputation: 1334
There are four types of Permission
Regular
Dangerous
Signed
Signed or System
The first two can be used by Simple Apps
Other two can only be used by the app which is build in framework
Upvotes: 1
Reputation: 149
Find ProtectedPermission from the list in
Window -> Preferences -> Android -> Lint Error Checking.
and set the severity to something other than error(info for example). This way your project will still compile.
Upvotes: 0
Reputation: 61
This error appears in SDK 19 onwards, when you change the manifest. Do Project Clean and Build. It should clear this error.
Upvotes: 4
Reputation: 59168
MODIFY_PHONE_STATE
permission is granted to system apps only.
For your information, there are 2 types of Android apps: system & user
User apps are just all your normal app installations through the Google Play Store, Amazon Appstore or sideloading. These go into the /data partition of your Android phone, which is the part of the internal memory made available for user data and apps.
System apps are basically the apps that come pre-installed with your ROM. In a standard Android user environment, the user doesn’t have write access to the /system partition and thus, installing or uninstalling system apps directly isn’t possible.
In order to install an app as a system app on your Android device, your device must either be rooted or have a custom recovery installed (or both).
That being said, that error is actually wrong because you have a valid code and compilation should work. It would be better if it gave a warning instead. In Eclipse you can easily fix it. Just go to:
Window -> Preferences -> Android -> Lint Error Checking.
Find ProtectedPermission
from the list and set the severity to something other than error(info for example). This way your project will still compile.
Upvotes: 65
Reputation: 5640
MODIFY_PHONE_STATE
is a system-only permission. System Apps are either pre-installed into a system folder or compiled by a manufacturer using their security certificate.
Hence, if you are trying to do this you are trying to use API which are no longer supported. With Android versions 2.3+ you can monitor incoming calls, but blocking is not allowed (i think from the link you posted thats what you're trying to do).
Android issues if you need to follow: Issue 15022 and Issue 14789
Upvotes: 6