Lanzamiento de la Actividad Actividad Preferencia causa de denegación de permiso de excepción

StackOverflow https://stackoverflow.com/questions/2077436

Pregunta

Estoy teniendo un poco de un problema aquí. Lo que quiero hacer es poner en marcha una actividad dentro de la PreferenceActivity. Así que mi preference.xml que mantiene la disposición preferencia es el siguiente:

<Preference android:title="Launch Activity" >
   <intent android:action="org.momo.SOME_ACTIVITY" />
</Preference>

El manifiesto está al tanto de la actividad Quiero lanzar ..

<activity android:label="@string/app_name" android:name="SomeActivity">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />

            <action android:name="org.momo.SOME_ACTIVITY" />
        </intent-filter>
    </activity>

adivinar lo que, me estoy haciendo una excepción de seguridad (denegación de permiso) cuando quiero lanzarlo. ¿Me estoy perdiendo de algo? Mi comprensión de las intenciones es todavía un poco incompleta, pero pensé que debe funciona de esa manera.

Gracias por cualquier ayuda!

¿Fue útil?

Solución

Cómo hacer una filtro intención parece ser una manera ligeramente indirecta de hacer esto. Este es un enfoque más simple:

<PreferenceScreen
    android:title="@string/settings.title" 
    android:summary="@string/settings.summary">
    <intent
        android:targetPackage="com.companyname.appname"
        android:targetClass="com.companyname.appname.classname"/>
</PreferenceScreen>

Otros consejos

trabajar completamente ejemplo En su preference.xml

<Preference 
        android:title="@string/settings_title_notification_silent_mode"
        android:summary="@string/settings_title_notification_silent_mode_summary">
  <intent
   android:action="com.activity.SilentModeList"/> <!-- SilentModeList its activity -->
  </Preference>

En su manifest.xml

      <activity android:name="com.activity.SilentModeList"
            android:label="@string/ac_settings_description">
           <intent-filter>
               <action android:name="com.activity.SilentModeList" />
               <category android:name="android.intent.category.DEFAULT" />
           </intent-filter>
      </activity>

I mi caso todos los ajustes mis xml eran correctas.

Pero la actividad que puso en marcha (llamado AppPreferences) debido al mal refractoring existía en lugares a: [package].AppPreferences y [[package].commmon.Preferences Debido a un import common._, que estaba tomando esto como la actividad y, por supuesto, que no estaba declarado en el manifiesto de Android. Sólo tenía que eliminar la segunda actividad de mi código y voilà!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top