“Exporté activité ne nécessite pas d'autorisation” lorsque vous tentez de lancer à partir d'un URI
Je suis en train de lancer une application Android à partir d'un URI à l'aide de cette SORTE de question comme une référence.
J'ai un fichier de manifeste avec les éléments suivants activité déclarée:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http" android:host="example.com" />
</intent-filter>
</activity>
Je tente de lancer MainActivity avec le http://example.com lien. Mon problème est que je reçois l'avertissement
"exported activity does not require permission"
J'ai regardé les autres DONC des questions que le rapport de ce même avertissement et toutes les solutions ne semblent pas fonctionner.
Comment puis-je écrire l'activité intent-filter correctement pour éviter l'avertissement?
Grâce
- double possible de Warning: Exportées activité ne nécessite pas d'autorisation
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème quand j' mise à jour du SDK de la version 20. Je l'ai enlevé l'ajout de android:exportées propery:
à l'intérieur de la déclaration d'activité dans le manifeste. Bien sûr, vous pouvez spécifier si l'activité est destinée uniquement pour application-usage interne
La raison pour laquelle il corrige, il est constaté sur docs:
android:exportées:La valeur par défaut dépend de l'activité contient des filtres d'intention. L'absence de filtres qui signifie que l'activité peut être invoquée qu'en spécifiant son nom de la classe. Cela implique que l'activité est destinée uniquement pour application-usage interne (étant donné que les autres ne connaissez pas le nom de la classe). Donc dans ce cas, la valeur par défaut est "false". D'autre part, la présence d'au moins un filtre implique que l'activité est destinée à un usage externe, de sorte que la valeur par défaut est "vrai".
Depuis "Exportées du récepteur n'a pas besoin de la permission" (au moins la CHARPIE message est clair) ,vous l'avez.
android:exported="false"
les choix de dialogue ne s'ouvre pas. Pour nettoyer le projet sloved le problème pour moi.Avez-vous essayez de nettoyer votre projet (Project > Nettoyer ...) ? Il fixe cet avertissement de mon projet, peut-être la vôtre.
Pour se débarrasser de cet avertissement, vous avez deux choix:
android:exported="false"
sur l'Activité de empêcher d'autres Applications à partir de l'appel de votre Activité par une intentionandroid:permission
attribut où vous pouvez spécifier les autorisations d'une Application a besoin d'avoir pour appeler de votre activité.Vous pouvez obtenir de plus amples informations dans le Android Documentation.
Grâce à @furykid pour les liens.