web-dev-qa-db-fra.com

L'autorisation est uniquement accordée à l'application système, dans Manifest

Je veux ajouter cette permission à mon manifeste Android:

<uses-permission Android:name="Android.permission.MODIFY_PHONE_STATE" />

Mais après avoir collé cette permission dans mon manifeste, il teste le soulignement rouge et dit:

l'autorisation n'est accordée qu'aux applications système

Que puis-je faire?

22
Reza_Rg

La permission MODIFY_PHONE_STATE est accordée aux applications système uniquement. 

Pour votre information, il existe 2 types d'applications Android: système et utilisateur

Les applications utilisateurne sont que toutes vos installations d'application normales via Google Play Store, Amazon Appstore ou le chargement latéral. Ceux-ci vont dans la partition/data de votre téléphone Android, qui est la partie de la mémoire interne mise à disposition pour les données utilisateur et les applications.

Les applications systèmesont essentiellement les applications préinstallées avec votre ROM. Dans un environnement utilisateur Android standard, l’utilisateur n’a pas d’accès en écriture à la partition/système et, par conséquent, l’installation ou la désinstallation directe des applications système n’est pas possible.

Pour installer une application en tant qu'application système sur votre appareil Android, votre périphérique doit avoir la racine ou une récupération personnalisée installée (ou les deux).

Cela étant dit, cette erreur est en fait fausse car vous avez un code valide et la compilation devrait fonctionner. Ce serait mieux s'il donnait un avertissement à la place. Dans Eclipse, vous pouvez facilement le réparer. Il suffit d'aller à: 

Fenêtre -> Préférences -> Android -> Vérification des erreurs de peluche.

RecherchezProtectedPermissiondans la liste et définissez la gravité sur autre chose que error (info par exemple). De cette façon, votre projet sera toujours compilé.

63
Caner

MODIFY_PHONE_STATE est une autorisation réservée au système. Les applications système sont préinstallées dans un dossier système ou compilées par un fabricant à l'aide de leur certificat de sécurité.

Par conséquent, si vous essayez de faire cela, vous essayez d'utiliser des API qui ne sont plus prises en charge. Avec les versions Android 2.3+, vous pouvez surveiller les appels entrants, mais le blocage n’est pas autorisé (je pense que d'après le lien que vous avez posté, c'est ce que vous essayez de faire). 

Problèmes sous Android si vous devez suivre: Numéro 15022 et Numéro 14789

6
gsb

Cette erreur apparaît dans le SDK 19 à partir de maintenant, lorsque vous modifiez le manifeste.

4
Pal

Comme il s’agit de l’autorisation des développeurs de périphériques au niveau système, les outils de développement d’application le préviennent également. Vous devez simplement cliquer sur le projet et le nettoyer.

2
Ajay Pandya

il suffit de nettoyer votre projet.

projet> Nettoyer ...

2
ROR

Il existe quatre types de permission

Regular
Dangerous
Signed
Signed or System

The first two can be used by Simple Apps Deux autres ne peuvent être utilisés que par l'application qui est construite dans le cadre

0
Xar-e-ahmer Khan

Recherchez ProtectedPermission dans la liste sous

Window -> Preferences -> Android -> Lint Error Checking.

et définissez la gravité sur autre chose que sur l'erreur (info par exemple). De cette façon, votre projet sera toujours compilé.

0
Khan