2017-09-25 126 views
3

我使用following method請求白名單爲我的應用程序:電池優化對話框

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    String packageName = getApplicationContext().getPackageName(); 


    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     if (!pm.isIgnoringBatteryOptimizations(packageName)) { 

      Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); 
      intent.setData(Uri.parse("package:" + packageName)); 
      startActivity(intent); 
     } 
    } 

我還添加了清單中的權限:

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/> 

(是的,我知道此權限會讓您在Google Play中遭到禁止,此代碼僅用於測試目的)。

在Android Oreo中,顯示對話框,並且在用戶接受它之後沒有任何反應。該應用程序未添加到白名單。但是,從那裏調用PackageManager.isIgnoringBatteryOptimizations總是會按預期返回true。

這是一個錯誤還是讓他們在Oreo中刪除了這個功能?

回答

1

很明顯,這是一些早期的ROM和新的Google Play模擬器的問題。我在普通的Oreo仿真器中測試了它,它按預期工作。