Android 电视机屏保意图
Android TV Set screensaver intent
无法像动态壁纸那样打开屏保预览,所以我想提供一个快捷方式,让用户可以打开电视设置并手动设置屏保。
目前我使用意图操作 android.settings.SETTINGS
打开系统设置,这会打开根设备设置。
在手机上我可以启动 android.settings.DREAM_SETTINGS
(在文档 here 中有描述),它会打开相应的设置部分。但这在电视上不起作用(在模拟器上试过)。可以在 Android 电视上打开吗?
我在“空中之梦”屏保的源代码中找到了启动这个activity的方法: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();
}
以防万一有人在 Nvidia Shield 上寻找启动屏幕保护程序。
意向名称是 com.android.systemui/.Somnambulator
。
如果使用 Button Mapper 应用程序,请使用“Broadcase Intent”和“Package”:com.android.systemui
和“Component”:com.android.systemui.Somnambulator
。
无法像动态壁纸那样打开屏保预览,所以我想提供一个快捷方式,让用户可以打开电视设置并手动设置屏保。
目前我使用意图操作 android.settings.SETTINGS
打开系统设置,这会打开根设备设置。
在手机上我可以启动 android.settings.DREAM_SETTINGS
(在文档 here 中有描述),它会打开相应的设置部分。但这在电视上不起作用(在模拟器上试过)。可以在 Android 电视上打开吗?
我在“空中之梦”屏保的源代码中找到了启动这个activity的方法: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();
}
以防万一有人在 Nvidia Shield 上寻找启动屏幕保护程序。
意向名称是 com.android.systemui/.Somnambulator
。
如果使用 Button Mapper 应用程序,请使用“Broadcase Intent”和“Package”:com.android.systemui
和“Component”:com.android.systemui.Somnambulator
。