Question

J'ai essayé d'obtenir une application Android pour installer un APK sur la carte SD par programmation, mais je rencontre un petit problème.

Voici comment je fais:

Intent intent = new Intent(Intent.ACTION_VIEW);           
intent.setDataAndType("ApkFilePath...","application/vnd.android.package-archive");
activity.startActivityForResult(intent,5000);

Maintenant que cela fonctionne bien, il apporte le gestionnaire de paquets et je peux contrôler quoi faire lorsque le gestionnaire a fini d'installer l'APK.

Mais le problème que je rencontre est que si à la fin de l'installation l'utilisateur clique sur "Ouvrir" au lieu de "Terminé", la méthode "OnActivityResult" n'est pas appelée, car le gestionnaire existe toujours ....et cela présente un autre problème sur une autre exigence du système.

Existe-t-il un moyen de savoir quand l'utilisateur a sélectionné "Ouvrir" à la fin du gestionnaire de paquets, ou y a-t-il un moyen de forcer le gestionnaire à n'afficher que les boutons que je souhaite afficher?

Je pourrais vraiment utiliser l'aide, j'ai cherché partout et je ne semble pas trouver de solution

Était-ce utile?

La solution

Vous pouvez ajouter un récepteur à votre AndroidManifest.xml pour écouter les émissions si une nouvelle application est installée. Comme ceci:

<receiver android:name=".PackageReceiver">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <action android:name="android.intent.action.PACKAGE_CHANGED" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="package" />
    </intent-filter>
</receiver>

Cette classe est ensuite appelée lorsqu'un nouveau package est installé:

public class PackageReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    // handle install event here
  }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top