Autore Topic: Installazione di un app su sd con preferExternal  (Letto 1395 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Installazione di un app su sd con preferExternal
« il: 03 Dicembre 2010, 16:32:17 CET »
0
Volevo dare l'opportunità di spostare la mia app su sd, per fare questo ho messo nel manifest il seguente attributo
android:installLocation="preferExternal"
mantenendo l'opzione del manifest
<uses-sdk android:minSdkVersion="4" />
Siccome però il la mia app è compatibile con android 1.6 e quindi il prj su Eclipse è stato creato con la 1.6 e quest'attributo c'è dalla 2.x, per far compilare il mio progetto ho cambiato la build path del mio progetto in eclipse da 1.6 ad 2.2

Il problema è che adesso h oesportato la mia app e messa sul desire htc ed in fase di installazione mi dice
"impossibile installare l'applicazione"

Se torno indietro cioè se rimetto la build path alla 2.2 e provo ad installare l'app sul celulare tutto funziona

cosa sbaglio?

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Installazione di un app su sd con preferExternal
« Risposta #1 il: 03 Dicembre 2010, 17:32:14 CET »
0

Se torno indietro cioè se rimetto la build path alla 2.2 e provo ad installare l'app sul celulare tutto funziona
Intendevi "torno alla 1.6"?
Postate il LogCat LogCat LogCat LogCat LogCat

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Installazione di un app su sd con preferExternal
« Risposta #2 il: 03 Dicembre 2010, 17:37:01 CET »
0
Se vuoi solo dare la possibilità di spostare l'app su sd devi utilizzare l'opzione "auto" e non "preferExternal"  (che installa su SD come opzione di default):
Citazione
If you declare "preferExternal", you request that your application be installed on the external storage, but the system does not guarantee that your application will be installed on the external storage. If the external storage is full, the system will install it on the internal storage. The user can also move your application between the two locations.

If you declare "auto", you indicate that your application may be installed on the external storage, but you don't have a preference of install location. The system will decide where to install your application based on several factors. The user can also move your application between the two locations

Devi poi compilare utilizzando l'SDK 8 e non sarebbe male indicare anche il targetSDK nel manifest:
Codice (XML): [Seleziona]
        <uses-sdk
                android:minSdkVersion="3"
                android:targetSdkVersion="8" />
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Installazione di un app su sd con preferExternal
« Risposta #3 il: 05 Dicembre 2010, 22:20:15 CET »
0
Questo è il mio codice del manifest
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="it.quizzi" android:versionCode="1" android:versionName="1.0" android:installLocation="preferExternal">
        <application android:icon="@drawable/icon" android:label="@string/app_name"
                android:name="it.test.Stato" android:screenOrientation="portrait"
                android:anyDensity="true" >
                <activity android:name="MyApp" android:label="@string/app_name"
                        android:screenOrientation="portrait">
                        <intent-filter>
                                <action android:name="android.intent.action.MAIN" />
                                <category android:name="android.intent.category.LAUNCHER" />
                        </intent-filter>
                </activity>



        </application>
        <uses-sdk android:minSdkVersion="4"
               android:targetSdkVersion="8" />


</manifest>
Riesco a fare l'export del file apk, in fase di installazione su un htc desire mi dice:
"Applicazione non installata"

Su Eclipse ho questo messaggio di warning
Attribute minSdkVersione (4) is lower than the project target API level (8)

Se dal manifest tolgo
 android:installLocation="preferExternal"

L'applicazione viene installata


Volevo chiedere, non si può fare in modo che se la versione di android del cellulare è la 2.x si può usare l'attributo
 android:installLocation="preferExternal"
mentre se è inferiore, viene ignorato?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Installazione di un app su sd con preferExternal
« Risposta #4 il: 06 Dicembre 2010, 00:45:48 CET »
0
In realtà quello che ti succede è piuttosto strano.

Da quanto si legge qui:

App Install Location | Android Developers

dovrebbe comportarsi esattamente come vorresti tu.

PS: android:screenOrientation="portrait" e android:anyDensity="true" non dovrebbero stare in <application>...

&lt;application&gt; | Android Developers

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Installazione di un app su sd con preferExternal
« Risposta #5 il: 06 Dicembre 2010, 12:01:38 CET »
0
Esatto Ricky, stavo cercando proprio di seguire il tutorial che hai lincato anche te
Purtroppo su un htc desire non funziona, forse perchè ho messo la rom di mondaco
bho
Cmq se mi confermi che ho seguito correttamente ile istruzioni, chiudo questo post

P.S. grazie della segnalazione del
android:screenOrientation="portrait" e android:anyDensity="true" non dovrebbero stare in <application>
non me ne ero accorto ed eclipse non mi segnalava nessun problema