2010-12-13 6 views
5

Est-il possible de créer vos propres autorisations à l'aide de la balise <uses-permission>?Création de vos propres autorisations

Vous aimez cette

<uses-permission android:name="com.android.myapp.INSTALL_LICENSE"></uses-permission> 

com.android.myapp est le nom de mon colis et INSTALL_LICENSE est l'autorisation que les utilisateurs doivent accepter

En outre, je voudrais Budle dans celui-ci beaucoup d'autorisations existantes permission afin que le client aurait seulement besoin de déclarer une seule autorisation et ils obtiendraient l'INTERNET, PHONE_STATE et d'autres autorisations.

+0

Pourriez-vous expliquer ce que vous voulez dire? Les autorisations sont généralement utilisées pour limiter la manière dont les applications peuvent interagir avec le matériel du téléphone. – Computerish

+0

@Computerish J'ai mis à jour la question – jax

Répondre

2

Vous ne savez pas exactement ce que vous entendez par "utiliser le tag" mais vous pouvez créer une nouvelle autorisation pour spécifier comment les autres applications peuvent interagir avec les activités et les services fournis par le vôtre.

Voir « et de faire respecter les autorisations Déclarant » à:

http://developer.android.com/guide/topics/security/security.html

+0

J'ai mis à jour la question – jax

+0

Ok, lisez le lien vers le site de développeur et vous devriez être tout ensemble. –

5

« En outre, je voudrais Budle beaucoup d'autorisations existantes dans celui-ci l'autorisation ».

Um, no. Ce serait délibérément introduire un trou de sécurité, permettant aux autres applications de contourner les autorisations réelles. J'espère que cela se traduira par l'application retirée du marché, si elle est trouvée.

Si une application a accès à INTERNET, PHONE_STATE ou à tout autre élément, elle doit déclarer l'autorisation réelle qu'elle utilise et qui est directement associée à cette fonctionnalité.

Ce qui est correct est d'avoir votre propre autorisation de restreindre l'accès de l'application à votre fonctionnalité, et à l'intérieur de votre propre .apk vous mettre en œuvre cette fonctionnalité à l'aide d'autres autorisations ... mais ne pas directement que d'exposer à la app. En d'autres termes, ceci est correct: Déclarer une autorisation pour DO_SOMETHING, qui permet à une application de dire envoyer une diffusion, qui vous fera faire quelque chose et retourner un résultat "vrai" ou "faux" indiquant s'il a réussi . Ceci n'est pas correct: Déclarer une autorisation pour DO_SOMETHING, qui expose une API permettant à une application de récupérer l'état du téléphone, ou d'envoyer des données fournies par l'appareil, ou de récupérer des informations GPS.

Pour déclarer une autorisation dans votre application, vous utilisez la balise comme décrit dans les documents.

Cependant quelque chose que vous devez vraiment être au courant: actuellement si une application est installée avant votre application et demande votre permission, il sera pas être accordé cette autorisation. (Parce que l'autorisation n'était pas connue au moment de son installation.) Pour que l'autorisation lui soit accordée, elle doit être réinstallée ou mise à jour après l'installation de votre application.

+0

+1 pour souligner le trou de sécurité désagréable de regrouper plusieurs autorisations existantes en une (sonne comme une application malveillante pour moi)! – Nailuj

+0

@hackbod: que se passe-t-il si les deux autorisations de déclaration et d'autorisation sont pré-installées en tant qu'applications système sur le micrologiciel? Est-ce que l'application utilisant pourrait accéder à la permission? –

5

Oui, vous pouvez déclarer votre propre autorisation et si une autre application souhaite utiliser votre application, elle doit à son tour déclarer votre autorisation.

Par exemple, vous déclarez manifester votre les suivantes:

<permission 
    android:name="com.examples.permissionexample.MY_APP" 
    android:description="@string/boom_perm_string" 
    android:label="@string/boom_permission_label_string"> 
</permission> 

Puis, dans une autre application, l'autorisation d'accéder à votre application serait sera:

<uses-permission android:name="com.examples.permissionexample.MY_APP" /> 
+0

Pouvez-vous me donner un exemple? dans quel but d'autres applications peuvent utiliser notre application? ou comment? ou quelle activité sera appelée par une autre application? – UnKnown

Questions connexes