[英]Temporarily increase screen brightness in Android Webview
我受到 Costco 應用程序的啟發,嘗試對我的應用程序做一些事情。 對於 Costco 來說,當你拉起條形碼時,它會最大限度地提高屏幕亮度,以便於掃描。 該應用程序的權限中沒有任何內容,因此它是以某種方式以編程方式完成的。 我的應用程序上有一個二維碼,當有人拉起我想在該屏幕上最大化屏幕亮度以掃描'''
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
ProgressDialogHelper.showProgress(MainActivity.this);
String host = Uri.parse(request.getUrl().toString()).getHost();
urlData = request.getUrl().toString();
String upBrightness = "Link of BCODE PAGE";
if (urlData.equals(upBrightness)) {
WindowManager.LayoutParams MainActivity = getWindow().getAttributes();
MainActivity.screenBrightness = 1F;
getWindow().setAttributes(MainActivity);
}
''' 我沒有任何運氣讓這個工作,有什么想法嗎?
所以在浪費了幾個小時之后,我發現代碼工作得很好。 亮度對 Android 仿真器沒有任何意義,您需要在真機上進行測試。 我覺得很愚蠢,但只是為了讓每個人都知道代碼有效。
編輯:您也不需要添加權限。 “寫入設置”對於最終用戶來說似乎是一個可怕的許可,我想避免它。
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 1.0f;// max value - 100 / 100.0f i.e 1.0f;
getWindow().setAttributes(lp);
通過 Layout 參數的亮度值在此處定義https://developer.android.com/reference/android/view/WindowManager.LayoutParams#BRIGHTNESS_OVERRIDE_FULL
您可以為屏幕亮度設置提供的最大值為 0 - 255,調整設備的亮度也需要寫入權限。 檢查此處的鏈接 - https://developer.android.com/reference/android/provider/Settings.System#SCREEN_BRIGHTNESS
您還需要在清單中添加以下權限。
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.