Android N позволяет вам связать свою деятельность с вашей страницей приложения в
Настройки. Просто добавьте <intent-filter>
для android.intent.action.APPLICATION_PREFERENCES
. Приложение Android N Settings будет искать активность в вашем приложении, которая
имеет <intent-filter>
. Если "Настройки" найдут один, он добавит шестерню
значок на страницу вашего приложения в настройках, и если пользователь нажимает шестерню, они
будут отправлены в назначенный вами вид деятельности.
Меня беспокоило безопасность, поэтому я подал проблему, ища разрешение, которое мы могли бы использовать с android:permission
, чтобы позволить настройкам начать нашу деятельность, но не разрешать другим приложениям запускать нашу деятельность (например, WRITE_SECURE_SETTINGS
).
cketti затем указал, что вы можете просто отметить активность как не экспортированную, через android:exported="false"
. К моему большому удивлению, это работает.
Как приложение "Настройки" запускает действие, отмеченное как не экспортированное?
Я уверен, что есть разрешение, которое контролирует это. Тем не менее, быстрый просмотр манифеста приложения настроек (master branch, n-development-preview-5) ничего не показалось очевидным.
Итак:
-
Есть ли разрешение, позволяющее приложению запускать неэкспортируемый компонент другого приложения? Если да, то что это?
-
Если нет, как настройки отключены?