2013-06-05 20 views
5

Sto cercando di ottenere la versione SDK di un'applicazione, ma se provoCome ottenere la versione SDK dell'applicazione e non del dispositivo?

android.os.Build.VERSION.SDK_INT 

in un'applicazione mirata per 2.3.3, ho la versione del dispositivo che è 17 invece di 10.

Non conosco la versione dell'SDK con cui verrà compilato il mio codice, perché sto scrivendo uno snippet di codice che gli sviluppatori possono aggiungere alla propria applicazione.

Grazie.

+0

Sono curioso .. Ma è necessario conoscere la versione di sdk. per favore dai un senario. – amalBit

+0

Sto scrivendo uno snippet di codice che gli sviluppatori possono aggiungere alla propria applicazione. –

+0

... e perché hai bisogno della versione dell'SDK lì? – laalto

risposta

0

se non ho capito male

è necessario android.os.Build.VERSION.RELEASE;

0

Date un'occhiata a questo .. targetSdkVersion.

di questo codice:

ApplicationInfo info=getApplicationInfo();// this class give info from the application tag in the manifest file 
    final int target=info.targetSdkVersion; 

passare anche attraverso questo discussion.

+0

Ottengo "1.0". Il tuo codice mi fornisce la versione dell'applicazione, non la versione dell'SDK utilizzata. –

+0

Dopo aver cercato su Google ho trovato quello che stai cercando @RonTesler – amalBit

+0

Grazie a @amal, ma il targetSdkVersion nel mio caso ha un valore di 0 , perché non è stato dichiarato nel manifest. Non riesco a controllare il file manifest dell'applicazione host, poiché non è mio. –

1

Dovresti sempre scegliere come target l'ultima versione. Questo ti porterà l'ultima API. Immagino che tu abbia bisogno di conoscere la versione corrente dell'API disponibile sul dispositivo. Per fare ciò si dovrebbe fare qualcosa di simile (per verificare se l'API corrente è 2.3):

@TargetApi(Build.VERSION_CODES.GINGERBREAD) 
    public static void someMethod() { 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { 
      /** 
      * Call code accessible from Gingerbread onwards 
      * */ 
     } else { 
      /** 
      * Call code from previous API 
      * */ 
     } 
    } 
+0

Il problema è che non conosco la versione dell'SDK con cui verrà compilato il mio codice. Voglio scrivere un codice che gli sviluppatori useranno nella loro applicazione. –

+0

Quindi il metodo sopra dovrebbe essere esattamente quello di cui hai bisogno ... in primo caso se userai le API disponibili da Gingerbread e così via. – gunar

Problemi correlati