Puis-je supprimer cette autorisation? (It cause INSTALL FAILED DUPLICATE PERMISSION in Android 5.0 device)

mon testeur a dit qu'il ne pouvait pas installer l'application de Play Store à son Nexus 5 (Lollipop). Il a dit qu'il a eu cette erreur

Unknown error code during application install “-505”

j'ai pris son téléphone et essayez d'installer l'application via adb, j'ai eu cette erreur

Failure [INSTALL_FAILED_DUPLICATE_PERMISSION 
        perm=com.example.gcm.permission.C2D_MESSAGE 
        pkg=com.mailchimp.alterego]

après un peu de lecture, je suis tombé sur cette écriture de @Commonsware

http://commonsware.com/blog/2014/08/04/custom-permission-vulnerability-l-developer-preview.html

il est clair que mon application et L'application Mailchimp (qui a installé sur le téléphone de mon testeur) a dupliqué la permission, com.exemple.gcm.autorisation.C2D_MESSAGE . Je vérifie alors mon journal de bord git pour voir quand j'ai ajouté cette ligne à mon AndroidManifest et j'ai trouvé que c'était quand j'implémente GCM. À l'époque, j'ai suivi ce tutoriel

https://developer.android.com/google/gcm/client.html

enter image description here

je suppose que, moi et MailChimp développeur suivre le même tutoriel, ajouté la même permission et maintenant les deux notre application a la permission de dupliquer.

donc, je retire cette permission de mon AndroidManifest et maintenant je suis en mesure d'installer mon application sur le téléphone de mon testeur. Je teste le message GCM en envoyant à package to GCM server depuis mon script php et mon application ont quand même reçu le message GCM tel quel.

alors, y aura-t-il une autre question soulevée à cause de cette permission manquante et à quoi bon avoir cette permission de toute façon? (car sans elle, mon application a encore reçu le message GCM)

mon souci est, si notre application utilise un plugin/bibliothèque qui a exigé la permission. Nous ne pourrons pas installer notre application sur le périphérique Lollipop s'il y a une autre application installée qui utilise la même bibliothèque, n'est-ce pas?

-- NOTE --

j'ai déjà lu cette question, peu de gens suggèrent la même chose à ce que j'ai fait, supprimer la permission. Mais personne ne parle de ce qui va se passer après nous, ou, pourquoi devons-nous ajouter.

INSTALL_FAILED_DUPLICATE_PERMISSION... C2D_MESSAGE

-- EDIT 1 --

je suis retourné au tutoriel, le tutoriel était bon, c'était ma mauvaise implémentation

enter image description here

I (et le développeur Mailchimp) devrait ajouter la permission avec le nom de notre app package+".autorisation.C2D_MESSAGE " au lieu de simplement copier-coller com.exemple.gcm.autorisation.C2D_MESSAGE

<permission android:name="com.mycompany.myappname.permission.C2D_MESSAGE" 
            android:protectionLevel="signature" />

mais, cela soulève une autre question pour moi, tutoriel dit que si nous n'ajoutons pas cette permission ou le nom ne correspond pas au modèle, app ne recevra pas le message.Mais Je j'ai eu le message quand j'ai testé même quand j'ai retiré cette mission... étrange.

2
demandé sur Community 2015-01-05 06:48:19

3 réponses

comme décrit dans INSTALL_FAILED_DUPLICATE_PERMISSION... C2D_MESSAGE , vous devez utiliser ${applicationId} à la place d'un id d'application statique dans L'AndroidManifest.

exemple:

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/>

il va résoudre votre problème et si vous commencez à utiliser la saveur tout fonctionnera parfaitement aussi. ;)

7
répondu JannGabriel 2017-05-23 12:24:42

changez le nom de votre paquet pour un autre nom de paquet, au lieu de supprimer ces permissions.

package="com.example.gcm" 

à

package="com.appname"  //use any name here like your app name or company name
0
répondu RajaReddy PolamReddy 2015-01-05 03:56:46

Android 5.0. Vous avez Multi-utilisateur, donc vous devez désinstaller pour tous les utilisateurs Étapes suivantes:

Après Avoir Désinstallé App. Vous pouvez trouver que votre nom d'application dans la liste D'applications de L'onglet Téléchargé.

Allez dans Paramètres->Applications. En bas de la liste, vous avez trouvé Yourrapp avec la balise "NOT INSTALLED" - > Open - > Cliquez sur le Menu Option et sélectionnez "Désinstaller pour tous les utilisateurs".

après ce processus, vous installez avec succès la nouvelle application et bien fonctionner.

0
répondu hoa.nguyen.VN 2015-01-05 07:43:45