Как включить настройку специальных возможностей для моего приложения, как только приложение будет запущено

Я пытаюсь включить настройку специальных возможностей для своего приложения, как только приложение запускается. Но я не в состоянии сделать это в настоящее время. Я использовал следующий код:

 Settings.Secure.putString(getContentResolver(), 
                           Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, 
                           "package_name");
 Settings.Secure.putString(getContentResolver(), 
                           Settings.Secure.ACCESSIBILITY_ENABLED, 
                           "1");

Чтобы использовать этот фрагмент кода, мы должны объявить следующее разрешение:

WRITE_SECURE_SETTINGS, но это разрешение применимо только для системных приложений. Как я могу добиться такой же функциональности для своего приложения. Все предложения приветствуются.


person Keshav1234    schedule 14.08.2015    source источник


Ответы (2)


API говорит: Settings.Secure

для настроек, которые пользователь должен явно изменить через системный пользовательский интерфейс или специализированные API для этих значений, не изменяемых непосредственно приложениями.

Если вы хотите программно проверить запрос пользователю, см. также android-как-вы-проверяете-включена-ли-конкретная-доступность. Код для вызова намерения приведен, например, в как-программно-включить-отключить-службу-доступности-в-андроиде, это

Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 0);
person serv-inc    schedule 14.08.2015

Как я могу добиться той же функциональности для майского приложения

Вы не можете по очевидным причинам конфиденциальности и безопасности. AccessibilityService имеет обширный доступ к тому, что пользователь делает с пользовательским интерфейсом устройства, и по этой причине пользователь должен согласиться включить это как отдельное действие через приложение «Настройки».

person CommonsWare    schedule 14.08.2015
comment
В порядке. Как только пользователь включит его, могу ли я замаскировать его от повторного отключения? Является ли это возможным? - person Keshav1234; 14.08.2015
comment
@ Keshav1234: Могу ли я замаскировать его от повторного отключения? -- надеюсь, нет, по тем же ослепительно очевидным причинам конфиденциальности и безопасности. - person CommonsWare; 14.08.2015
comment
В порядке. Большое спасибо Commonsware. У меня есть еще одно сомнение, в Android M убрали закладки чтения и записи, есть ли этому альтернатива? - person Keshav1234; 14.08.2015
comment
@ Keshav1234: они удалили закладки для чтения и записи - я не знаю, что они сделали. Если это действительно так, я буду очень рад. Я, конечно, не знаю обходного пути. - person CommonsWare; 14.08.2015
comment
Да у них есть. См. следующую ссылку, в которой говорится, что закладки и разрешения на подписку на каналы удалены. developer.android.com/preview/support.html. - person Keshav1234; 14.08.2015
comment
@ Keshav1234: Ах, я пропустил это в примечаниях к выпуску MNC v2. Спасибо, что указали на это! - person CommonsWare; 14.08.2015