Installa APK a livello di programmazione su Android
-
28-10-2019 - |
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
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
}
}