私はintentServiceタスクをフォアグラウンドモードにしていますが、アンドロイドM +ではDozeモードでタスクが停止します。アプリがホワイトリストに自分自身を設定しようとする意図がある場合は、私はGoogleの利用を禁止しています。しかし、私が許可を使用してGRANTまたはDENIEDをチェックすると、私は与えられた結果を得るが、何も起こらない。私はホワイトリストに私のアプリが表示されません。禁止されていないホワイトリストにアプリを追加するにはどうすればよいですか?REQUEST_IGNORE_BATTERY_OPTIMIZATIONSそれを正しく行う方法
if(Build.VERSION.SDK_INT>=23){
int permissionCheck= ContextCompat
.checkSelfPermission(this, Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
if(permissionCheck == PackageManager.PERMISSION_DENIED){
//Should we show an explanation
if(ActivityCompat.shouldShowRequestPermissionRationale
(this, Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)){
//Show an explanation
final String message = "";
Snackbar.make(coordinatorLayoutView,message,Snackbar.LENGTH_LONG)
.setAction("GRANT", new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS},PERMISSION_REQUEST_CODE);
}
})
.show();
}else{
//No explanation need,we can request the permission
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS},PERMISSION_REQUEST_CODE);
}
}
}
CommonsWare、詳細な回答ありがとうございます。それは私が許可を必要としない、意図を作成するだけであることを意味する?私は正しい? – Delphian
@Delphian: 'ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS'を使いたい場合、あなたのアプリやホワイトリストに特有のページに直接誘導するには、マニフェストで' REQUEST_IGNORE_BATTERY_OPTIMIZATIONS'を要求する必要がありますが、実行時権限コードを使う必要はありませんそれのための。許可を避けたい場合は、代わりに 'ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS'を使用してください。 – CommonsWare
CommonsWareありがとう! – Delphian