Android TV Set намерение заставки - PullRequest
1 голос
/ 12 июля 2020

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

В настоящее время я открываю системные настройки с намеренным действием android.settings.SETTINGS, который открывает root настройки устройства.

На телефонах я могу запустить android.settings.DREAM_SETTINGS (это описано в docs здесь ), которое открывает соответствующий раздел настроек. Но на ТВ не работает (пробовал на эмуляторе). Можно ли открыть на Android ТВ?

1 Ответ

0 голосов
/ 25 июля 2020

Я нашел способ запустить это действие в исходном коде заставки "Aerial Dream": https://github.com/cachapa/AerialDream/blob/master/app/src/main/java/com/codingbuffalo/aerialdream/SettingsFragment.java#L29

// Check if the daydream intent is available - some devices (e.g. NVidia Shield) do not support it
Intent intent = new Intent(SCREENSAVER_SETTINGS);
if (!intentAvailable(intent)) {
    // Try opening the daydream settings activity directly: https://gist.github.com/reines/bc798a2cb539f51877bb279125092104
    intent = new Intent(Intent.ACTION_MAIN).setClassName("com.android.tv.settings", "com.android.tv.settings.device.display.daydream.DaydreamActivity");
    if (!intentAvailable(intent)) {
        // If all else fails, open the normal settings screen
        intent = new Intent(SETTINGS);
    }
}
startActivity(intent);

private boolean intentAvailable(Intent intent) {
    PackageManager manager = getActivity().getPackageManager();
    List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0);
    return !infos.isEmpty();
}
...