Решение
alibi - определить намерение в записи <PreferenceScreen>
- сработало для меня после долгих проб и ошибок полей targetPackage
и targetClass
.
targetPackage
должен быть полным путем к имени пакета моего приложения (то есть записи package=
в файле AndroidManifest.xml).targetClass
должен быть полным путем к Деятельности - ВКЛЮЧАЯ имя пакета, даже если Активность находится в том же пакете, что и Приложение.
Файл AndroidManifest.xml для Приложения также (конечно) нуждается в записи для Действия.Я не определил <intent-filter>
для этой записи, возможно потому, что action
равен MAIN
(это было верно, независимо от того, было ли действие в том же пакете или в другом пакете, чем приложение).
Пример: пакет приложения - com.thissocialworld
.Активность, которую я хотел бы начать с PreferencesScreen
, находится в пакете под названием com.coolcommon
, а класс Activity - com.thissocialworld.SpecialPreferences
.Запись в <PreferenceScreen>
выглядит следующим образом:
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.thissocialworld"
android:targetClass="com.thissocialworld.SpecialPreferences"/>
Я могу попробовать изменить action.MAIN
на action.PREFERENCES
, если кажется, что необходимо получить доступ к PreferencesManager
.
(PS Мой первый пост здесь, я не мог понять, как опубликовать это как комментарий к обсуждению, начатому alibi.)