как открыть системную страницу, а затем закрыть ее в коде? - PullRequest
0 голосов
/ 18 февраля 2020

Я встречаю сценарий использования, при котором страница настроек системы показывается в течение 3 секунд, а затем автоматически закрывается. Я планирую запустить действие по настройке системы с моим PreferenceFragment, а в onCreate() использовать getActivity() для finish() это через 3 секунды:

public class MyPreferenceFragment extends PreferenceFragment{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        new Timer().schedule(new TimerTask() {
            public void run() {
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() { getActivity().finish(); }
                });
            }
        }, 3000);
    }
}

И запустите страницу настроек:

Intent intent = new Intent();
intent.setClassName("com.android.settings", 
    "com.android.settings.Settings$AccessibilitySettingsActivity");
intent.setAction(Intent.ACTION_MAIN);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
    | Intent.FLAG_ACTIVITY_CLEAR_TASK
    | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT,
    MyPreferenceFragment.class.getName());
startActivity(intent);

Но, похоже, не столкнетесь с MyPreferenceFragment.onCreate().

Я бы Когда-либо видел другое приложение, которое загружается с Play Market, может открыть страницу настроек системы, выполнить щелчок, а затем закрыть его. Я разрешаю доступность для этого прежде. Мое устройство не рутировано. Как я могу это сделать?

...