Domanda

Ho cercato di ottenere un'applicazione Android per installare un APK su SDCard a livello di programmazione, ma mi sto imbattendo in un piccolo problema.

È così che lo sto facendo:

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

Ora funziona bene, porta il gestore dei pacchetti e posso controllare cosa fare quando il manager termina l'installazione dell'APK.

Ma il problema che sto riscontrando è che se alla fine dell'installazione l'utente fa clic su "Apri" anziché "fatto" il metodo "OnactivityResult" non viene chiamato, come esiste ancora il manager .... e questo presenta Un altro problema su un altro requisito sul sistema.

C'è un modo per sapere quando l'utente ha selezionato "Apri" alla fine del gestore dei pacchetti o c'è un modo per costringere il gestore a visualizzare solo i pulsanti che voglio che venga visualizzato?

Potrei davvero usare l'aiuto, ho cercato ovunque e non sembra trovare una soluzione

È stato utile?

Soluzione

Puoi aggiungere un ricevitore al tuo AndroidManifest.xml Per ascoltare le trasmissioni se è installata una nuova app. Come questo:

<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>

Questa classe viene quindi chiamata quando è installato un nuovo pacchetto:

public class PackageReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    // handle install event here
  }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top