2019年2月11日 星期一

【Android】修改螢幕亮度

應該是Android 6.0以後,這類的硬體功能調整光是在Manifest檔中加上「User-Permission」並不夠,還需要有「權限啟動」的通知。

Intent intent1 = new Intent(android.provider.Settings.ACTION_MANAGE_WRITE_SETTINGS);intent1.setData(Uri.parse("package:" + getPackageName()));intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent1);

方法大概如上。這個功能會啟動特定APP的權限管理頁,讓使用者決定是否要自己打開權限。

但在執行這行之前,要詢問系統是否有「執行他們」的能力,--是否有修改Setting的權限。

Settings.System.canWrite

這是個函數,後面要傳入「Activity」作為參數。

如果回傳false,就表示權限未開啟,如果執行程式碼會導致當機。


之後就是很一般的程式碼,直接取得Setting類別後,要求修改特定參數。

android.provider.Settings.System.putInt(
        getContentResolver(),        android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE,        android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);android.provider.Settings.System.putInt(
        getContentResolver(),        android.provider.Settings.System.SCREEN_BRIGHTNESS,        brightNeess);

brightNeess這個參數要自己自訂。(寫死?或是可以讓使用怎選取、輸入想要的數直。)

沒有留言:

張貼留言