2012-04-25 15 views
26

Vorrei aggiungere un attributo personalizzato al tag dell'applicazione del mio file AndroidManifest.xml. È possibile in ambiente Android?È possibile avere attributi personalizzati nei tag AndroidManifest.xml?

+0

Immagino di no ... ma puoi elaborare questo ... –

+0

Certo, le mie motivazioni sono qui: http://stackoverflow.com/q/10311504/183123. Mi piacerebbe avere un registro delle applicazioni con un servizio che sto sviluppando. L'applicazione di destinazione non deve essere in esecuzione –

risposta

58

Sì. Ecco un esempio. Il tag personalizzato è ContentVersion.

<application android:name=".MyApplication" 
      android:icon="@drawable/icon" 
      android:label="@string/app_name"> 

    <meta-data android:name="ContentVersion" android:value="1.9" /> 

    <activity android:name="com.someone.something.MainActivity" 
       android:theme="@android:style/Theme.Translucent.NoTitleBar" 
       android:screenOrientation="sensor" 
       android:label="@string/app_name"> 

Per accedervi:

ApplicationInfo ai = _context.getPackageManager().getApplicationInfo(_context.getPackageName(),PackageManager.GET_META_DATA); 
    ai.metaData.get("ContentVersion") 
+7

Huh. Un downvote senza commenti. Questo non aiuta! Per favore dimmi cosa c'è di sbagliato nella mia risposta, se mai tornerai! – Simon

+0

http://stackoverflow.com/questions/17972963/add-android-metadata-tag-in-theme-apk-and-read-the-value mi puoi suggerire –

+0

Sembra che non sia possibile aggiungere ad un Tag . Ecco il documento pertinente: http://developer.android.com/guide/topics/manifest/meta-data-element.html – user128536

0

Si potrebbe andare per un SharedPreferences, invece (aka, le impostazioni).

+0

questo non è completamente correlato. – njzk2

+0

Non completamente. Stavo andando per altre soluzioni che potrebbero adattarsi a questa situazione. I tag – Korcholis

+1

nel file manifest vengono aggiunti al momento della compilazione e vi si accede in fase di runtime. sharedpreferences sono creati e accessibili in fase di runtime. – njzk2

3

Non è possibile definire un attributo personalizzato per un tag predefinito, ma è possibile aggiungere coppie chiave-valore denominate meta-data.

0

Nel tag (così come il servizio e il ricevitore), è possibile utilizzare il tag (http://developer.android.com/guide/topics/manifest/meta-data-element.html)

Contiene un nome e un valore o un ID risorsa.

Lo si recupera tramite il PackageManager.

-2

Se qualcuno ha bisogno di quello per Xamarin (Mono per Android) non riuscivo a trovare la costante, ma ho trovato il valore per esso, che è 128.

Ho usato una condizione "per" per passare attraverso tutti i valori da 0 a 1000 e controllare ogni volta che la proprietà MetaData non era nulla. lol

Problemi correlati