è possibile ottenere il nome del file di installazione che è memorizzato su/sdcard/ download /? Voglio ottenere da app, nome file apk che lo ha installato. Esiste un modo semplice per farlo in particolare con l'app non di mercato?Android: come ottenere il nome del file di installazione in modo programmatico?
risposta
Il modo migliore è sicuramente includere la stringa di versione nel manifest. Questo è davvero l'unico metodo affidabile (e professionale). Android non memorizza il nome del file contenente l'APK da nessuna parte, quindi non esiste un modo per ottenerlo.
In teoria si potrebbe forse costruire qualcosa utilizzando un FileObserver
, che la creazione di file guardato in alcune directory e ogni volta che un file è stato creato con l'estensione .apk
si potrebbe aprire il file, estrarre il manifesto, trovare il nome del pacchetto della APK e quindi memorizzarlo insieme al nome file in una memoria persistente. Quindi, quando è necessario ottenere le informazioni sulla versione, è possibile cercare nella memoria persistente per ottenere il nome del file corrispondente al nome del pacchetto necessario.
Naturalmente, ciò funzionerebbe solo se l'app è stata installata sul dispositivo prima dello gli altri file APK sono stati scaricati/installati. Questo non funzionerebbe per scoprire il nome del file della tua applicazione.
Hmm, non sono sicuro di cosa si intende per cartella sdcard o il download, ma si potrebbe ottenere il percorso APK nella directory di sistema/dati:
riga di comando:
$ adb shell pm list packages | grep mk.trelloapp
package:mk.trelloapp
$ adb shell pm path mk.trelloapp
package:/data/app/mk.trelloapp-1/base.apk
o da Lei applicazione Android codice: (processo di eseguire semplicemente)
Process exec = Runtime.getRuntime().exec("pm path mk.trelloapp");
exec.waitFor();
InputStream inputStream = exec.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String line = null;
while((line = br.readLine()) != null) {
builder.append(line);
}
String commandOutput = builder.toString();
codice di cui sopra dovrebbe semplicemente dare stringa contenente "pacchetto: /data/app/mk.trelloapp-1/base.apk"
Quando si acquisisce il percorso nella directory/data, è possibile provare a cercare lo stesso file (simile) in altre directory (supponendo che non sia stato eliminato), poiché il pacchetto Android viene copiato nella directory/data durante l'installazione.
Questo non è utile. OP vuole essere in grado di ottenere il nome file originale del file APK che è stato scaricato perché il numero di versione della sua app è codificato come parte di quel nome file. Il percorso APK per '/ data' non include queste informazioni, in quanto utilizza solo il nome del pacchetto. –
- 1. Modo programmatico per ottenere il nome della variabile in C?
- 2. android, come ottenere il nome del pacchetto?
- 3. Come ottenere il nome del file di input in MRjob
- 4. Come ottenere il nome del file dal percorso del file in Android
- 5. Come trasformare il gruppo in file SVG in modo programmatico?
- 6. Come posso ottenere il nome del pacchetto in Android?
- 7. Ottenere il nome del file bitmap
- 8. Come ottenere il nome/percorso del file Excel in VBA
- 9. Come ottenere il nome dell'applicazione in Android?
- 10. Come ottenere il nome file del modulo __main__ in Python?
- 11. come ottenere il nome file del chiamante, il nome del metodo in python
- 12. Come ottenere il nome del file di .EXE
- 13. Come posso ottenere la posizione del file user.config in modo programmatico?
- 14. Come ottenere il nome del pacchetto o classe di origine file in Android?
- 15. Come posso ottenere il nome del pacchetto del programma di avvio corrente in Android 2.3 e versioni successive?
- 16. PHP, ottenere il nome del file senza estensione di file
- 17. Il modo migliore per verificare in modo programmatico l'esistenza del file di intestazione?
- 18. Converti in modo programmatico il file docx in documento
- 19. Posso impostare android: layout_toLeftOf in modo programmatico?
- 20. Come ottenere l'URL del dominio e il nome dell'applicazione?
- 21. Come ottenere solo il nome del file nel preprocessore?
- 22. Come posso configurare l'attività Launcher in modo programmatico su Android?
- 23. Come ottenere il percorso assoluto del nome file javascript corrente
- 24. Come posso ottenere il nome di un file in Dart?
- 25. @MultipartForm Come ottenere il nome del file originale?
- 26. Ottenere l'output di Xmeans clusterer in modo programmatico in Weka
- 27. Come leggere il permesso del file linux in modo programmatico in C/C++
- 28. Come ottenere il nome file dal percorso file in swift
- 29. Come posso ottenere il nome del file da request.FILES?
- 30. Come leggere i messaggi vocali in modo programmatico su Android
cosa intendi con "nome file di installazione"? Il nome dell'apk? Se sì, perché lo vuoi? Si prega di aggiungere ulteriori dettagli. –
Sì, voglio ottenere il nome apk che è memorizzato su sd card. Ho creato il file apk e lo ho memorizzato sul server, quando qualcuno vuole scaricarlo, il server genera un file con un nome univoco, ad esempio: "application00086.apk". La domanda è: come ottenere questo nome di file univoco dalla mia app che è dopo l'installazione memorizzata nella directory:/data/app/Ho trovato il metodo interessante: getInstallerPackageName ma questo metodo restituisce solo il nome del pacchetto di installazione e solo per le app distribuite su Android Market, I desidera ottenere il file di installazione NAME e non desidera distribuire la mia app in Market. – Wolfie
@ Wolfie: ho affrontato lo stesso problema con te. Hai una soluzione per questo. Grazie mille ! – hoang8f