2012-04-25 14 views
26

Chciałbym dodać niestandardowy atrybut do znacznika aplikacji mojego pliku AndroidManifest.xml. Czy to możliwe w środowisku Android?Czy możliwe jest posiadanie niestandardowych atrybutów w tagach AndroidManifest.xml?

+0

Chyba nie ... ale można opracować ten ... –

+0

pewno, moje motywacje są tutaj: http://stackoverflow.com/q/10311504/183123. Chciałbym mieć rejestr aplikacji z usługą, którą rozwijam. Aplikacja docelowa nie musi być uruchomiona –

Odpowiedz

58

Tak. Oto przykład. Niestandardowy tag to 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"> 

Aby uzyskać do niego dostęp:

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

Huh. Downvote bez komentarza. To nie pomaga! Proszę powiedz mi, co jest nie tak z moją odpowiedzią, jeśli kiedykolwiek wrócisz! – Simon

+0

http://stackoverflow.com/questions/17972963/add-android-metadata-tag-in-theme-apk-and-read-the-value może mi zasugerować –

+0

Wydaje się, że nie można dodać do tag. Oto odpowiedni dokument: http://developer.android.com/guide/topics/manifest/meta-data-element.html – user128536

0

Można pójść na SharedPreferences, zamiast (aka Ustawienia).

+0

jest to całkowicie niepowiązane. – njzk2

+0

Nie całkowicie. Szukałem innych rozwiązań, które pasowałyby do tej sytuacji. – Korcholis

+1

Znaczniki w manifeście są dodawane w czasie kompilacji i dostępne w czasie wykonywania. sharedpreferences są tworzone i dostępne w czasie wykonywania. – njzk2

3

Nie można zdefiniować atrybut niestandardowy do predefiniowanej zmiennej, ale można dodać pary klucz-wartość zwane meta-data.

0

w znaczniku (jak również serwis i odbiornik), można użyć znacznika (http://developer.android.com/guide/topics/manifest/meta-data-element.html)

Zawiera nazwę i wartość lub identyfikator zasobu.

je odzyskać poprzez PackageManager.

-2

Jeśli ktoś potrzebuje że Xamarin (Mono for Android) nie mogłem znaleźć stałej, ale uważam, że wartość za to, co jest 128.

użyłem „za” warunek, aby przejść przez wszystkie wartości od 0 do 1000 i sprawdzić, gdy właściwość metadane nie była zerowa. lol

Powiązane problemy