2012-04-25 12 views
26

Me gustaría agregar un atributo personalizado a la etiqueta de la aplicación de mi archivo AndroidManifest.xml. ¿Es esto posible en el entorno de Android?¿Es posible tener atributos personalizados en las etiquetas AndroidManifest.xml?

+0

supongo que no ... pero ¿puedes elaborar esto ... –

+0

Claro, mis motivaciones están aquí: http://stackoverflow.com/q/10311504/183123. Me gustaría tener una aplicación para registrarme con un servicio que estoy desarrollando. La aplicación de destino no necesita ejecutarse –

Respuesta

58

Sí. Aquí hay un ejemplo. La etiqueta personalizada es 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"> 

Para acceder a ella:

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

Huh. Un voto negativo sin comentarios. Eso no ayuda! Por favor, dime qué está mal con mi respuesta, si vuelves alguna vez. – Simon

+0

http://stackoverflow.com/questions/17972963/add-android-metadata-tag-in-theme-apk-and-read-the-value me puede sugerir –

+0

Parece que no puede agregar a un etiqueta. Aquí está el documento relevante: http://developer.android.com/guide/topics/manifest/meta-data-element.html – user128536

0

Puede optar por SharedPreferences, en su lugar (también conocido como configuración).

+0

, esto no tiene ninguna relación. – njzk2

+0

No completamente. Estaba buscando otras soluciones que pudieran encajar en esta situación. – Korcholis

+1

las etiquetas en el manifiesto se agregan en tiempo de compilación y se accede a ellas en tiempo de ejecución. Las preferencias compartidas se crean y se accede a ellas en tiempo de ejecución. – njzk2

3

No se puede definir un atributo personalizado en una etiqueta predefinida, pero puede agregar pares clave-valor llamados meta-data.

0

En la etiqueta (así como el servicio y el receptor), se puede utilizar la etiqueta (http://developer.android.com/guide/topics/manifest/meta-data-element.html)

Contiene un nombre y un valor o una identificación de recurso.

Lo recupera a través del PackageManager.

-2

Si alguien necesita que por Xamarin (Mono para Android) no pude encontrar la constante, pero he encontrado el valor para ella, que es 128.

Utilicé una condición "para" para pasar por todos los valores de 0 a 1000 y verificar siempre que la propiedad MetaData no fuera nula. lol

Cuestiones relacionadas