2009-03-02 7 views
9

Dans mon programme, il ajoute un raccourci vers l'écran. Je reçois l'icône sur l'écran de fin, mais quand je tape, je reçois:Erreur d'autorisation de raccourci d'écran d'accueil Android

03-01 20:00:29.410: ERROR/AndroidRuntime(796): java.lang.SecurityException: Permission Denial: starting Intent { data=http://www.example.com/ flags=0x14000000 comp={com.isaacwaller.example/com.isaacwaller.example.ExampleCut} } from ProcessRecord{435c7398 796:android.process.acore/10005} (pid=796, uid=10005) requires null 

Savez-vous le problème? Merci,
Isaac

Répondre

9

figured it out, a ajouté cette sous <activity> étiquette d'activité:

<intent-filter> 
<action android:name="android.intent.action.MAIN"></action> 
</intent-filter> 
+0

Pourriez-vous nous montrer le Mainfest complet (fixe)? –

2

Je n'ai pas rencontré cela personnellement, mais j'ai fait quelques recherches et trouvé ce qui suit.

Apparemment, tout ce qui tente d'invoquer votre application ou si votre application a un appel pour créer une intention et démarrer une activité d'une certaine intention, l'UID n'est pas le même.

Dans ActivityManagerServer.java, vous trouverez ci-dessous un jugement.

int checkComponentPermission(String permission, int pid, int uid, int reqUid) 
// If the target requires a specific UID, always fail for others. 
    if (reqUid >= 0 && uid != reqUid) { 
     return PackageManager.PERMISSION_DENIED; 
    } 

Je vais faire quelques tests sur ce sujet et voir si je peux reproduire ce dans une application de test et de fournir des commentaires supplémentaires.

Assurez-vous que vous tentez uniquement d'invoquer des activités publiquement exposées à toutes fins utiles.

5

Quelque chose comme cela devrait fonctionner:

<intent-filter> 
    <action android:name="com.example.Project.Action"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 

à l'intérieur de la déclaration d'activité dans le manifeste.

10

J'ai eu quelque chose comme ceci se produire quand j'avais accidentellement dupliqué le tag d'activité pour l'une de mes activités dans mon manifeste. J'avais quelque chose comme ça dans ma section application.

<activity android:name=".ConventionHome" android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

<activity android:name="ConventionHome"></activity> 

Lorsque j'ai supprimé la deuxième étiquette d'activité, les choses ont commencé à fonctionner normalement.

+1

Cela a juste corrigé mon erreur quand j'ai eu "L'application n'est pas installée sur ce téléphone". Je suivais quelques exemples d'un livre et ne remarquais pas mon problème de copier-coller avec l'activité en double. Belle prise! (Serait encore plus agréable pour: l'activité en double dans le manifeste) –

Questions connexes