Come posso abilitare lo spostamento della mia app sulla sdcard?Come abilitare l'app che viene spostata su sdcard (e supporta ancora Android <2.2)?
-editato il titolo per rendere la domanda più pertinente alle risposte fornite.
Come posso abilitare lo spostamento della mia app sulla sdcard?Come abilitare l'app che viene spostata su sdcard (e supporta ancora Android <2.2)?
-editato il titolo per rendere la domanda più pertinente alle risposte fornite.
È necessario impostare la voce android:installLocation
nel file AndroidManifest.xml (i valori preferExternal
o auto
funzioneranno).
NB! Per questo obiettivo di build dovrebbe essere API Livello 8 (Android 2.2).
È anche possibile impostare android:installLocation
e scegliere ancora su Android 1.6.
Nella tua AndroidManifest.xml
è necessario inserire il min SDK versione del genere
<uses-sdk android:minSdkVersion="4" />
Questo farà in modo che l'applicazione funziona solo su Android 1.6 e superiori. Ciò ovviamente causerà un errore del compilatore nel tuo progetto Eccex. Questo perché l'1.6 SDK non è al corrente dello android:installLocation
. Per risolvere questo problema, fai clic con il pulsante destro del mouse sul progetto nello spazio del progetto Eclipse (supponendo che tu stia utilizzando Eclipse, non so come funziona in altri IDE o con build Ant) quindi vai all'opzione "Android" e seleziona "Progetto Build Target "su Android 2.2
.
Questo rimuoverà l'errore mostrato sopra ed è possibile compilare/esportare il file APK. In questo modo l'APK funzionerà su Android 1.6-2.1 come al solito e su Android 2.2 ti consentirà di utilizzare la scheda SD per installare/spostare l'app.
Tuttavia una parola di avvertenza: Questa può essere una fonte di incompatibilità, se non stai attento. È quindi necessaria una fase di test più intensa, poiché non si noterà direttamente se si utilizza una funzionalità 2.x, poiché Eclipse non lo mostrerà come errore, poiché utilizza l'SDK di Android 2.2 come riferimento.
in modo da avere in pratica 2 scelte: 1. fare solo i passi precedenti, quando si esporta/firmare la vostra applicazione (cioè poco prima si è in procinto di pubblicare questa nuova versione) e quindi impostare nuovamente o 2. Testare ampiamente le applicazioni su 1.6 Device o Emulator e verificare se si arresta in modo anomalo in qualsiasi momento, poiché l'app utilizza una funzionalità disponibile solo su SO più recente di 1.6.
A seconda della complicazione della domanda, la prima è di solito più sicura, tuttavia si rischia di aver dimenticato di farlo una volta. Ciò comporterebbe la conseguenza che per questo aggiornamento l'utente non avrà la possibilità di installarlo sulla scheda SD. La scelta 2 ha il problema, che se non testate tutto abbastanza bene, l'app potrebbe improvvisamente forzare la chiusura quando un dispositivo Android 1.6 tenta di chiamare funzioni/funzioni disponibili solo in 2.x.
Ho usato questo metodo - Costruisco l'intera app con un obiettivo di build di 1.6, e quindi cambia le cose alla fine per avere minsdkversion = "4" e costruire target impostato su 2.2 prima della distribuzione. – AndrewPK
Si prega di seguire la procedura qui sotto per i telefoni Android.
android sdk\platform-tools
adb shell pm setInstallLocation 2
Grazie !! Questa risposta è molto buona. Ha funzionato per me su Gingerbread. – douggynix
Questo tutorial ha chiare istruzioni per spostare l'applicazione su scheda SD
http://mobile.tutsplus.com/tutorials/android/move-to-sd-card/
Inoltre ha puntatore a quando utilizzare la funzione scheda SD http://developer.android.com/guide/topics/data/install-location.html#ShouldNot
grazie, per quanto riguarda il livello di API . dovrebbe essere o deve essere? Ad esempio, posso targetizzare 1.6 e avere ancora questa funzione? – clamp
Deve essere. Questa è la funzione Froyo e la build fallirà con 1.6 (non riuscirà a trovare questo attributo). Puoi controllare questo articolo per maggiori dettagli: http://android-developers.blogspot.com/2010/07/apps-on-sd-card-details.html. – Ralkie
Non deve. Beh, come nella mia risposta qui sotto, devi scegliere il target 2.2, ma puoi ancora mantenere la compatibilità 1.6 se non usi nessuna funzionalità non disponibile in 1.6 – Tseng