簡體   English   中英

在 Android Webview 中暫時增加屏幕亮度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM