我正在制作一个应用程序,用接近传感器打开和关闭屏幕.接近代码已完成,但我在使用屏幕控制时遇到了麻烦.
我读过我应该用的,
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(int amountOfTime);
Run Code Online (Sandbox Code Playgroud)
为此,我需要授予特殊权限才能使其正常工作,但我还没弄清楚如何做到这一点.
此外,我已阅读有关更改屏幕亮度的信息
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
Run Code Online (Sandbox Code Playgroud)
但这种方式只能在我的应用程序上关闭屏幕; 如果我的应用程序在后台运行,它不起作用.
我还读过关于使用Wakelock的信息(我用它来唤醒我的手机屏幕关闭),但是什么时候
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,没有任何反应.
还有其他办法吗?
有没有办法在首选项中显示已安装的应用程序列表?
我正在创建一个通过Intent启动其他应用程序的应用程序:
PackageManager pm = getApplicationContext().getPackageManager();
Intent appStartIntent = pm.getLaunchIntentForPackage("NAME OF THE PACKAGE");
if (null != appStartIntent) {
getApplicationContext().startActivity(appStartIntent);
}
Run Code Online (Sandbox Code Playgroud)
我需要一种从中获取包名称的方法ListPreference
,最好的方法是ListPreference
包含所有已安装应用程序的图标名称.
这怎么可能?