Как обработать пользовательский ответ для ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS?
На данный момент я спрашиваю пользователя о возможностях приложения для экономии заряда батареи:
public void startSessionClick(View view) {
String token = MyApp.getInstance().getPrefToken();
if (!TextUtils.isEmpty(token)) {
throw new RuntimeException("Token is not empty");
}
//todo hot-fix
if (checkBatteryOptimization()) {
Intent intent = new Intent(this, AuthEnterPhoneActivity.class);
startActivityForResult(intent, REQUEST_CODE_ENTER_PHONE);
} else {
String packageName = getApplicationContext().getPackageName();
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
getApplicationContext().startActivity(intent);
//handleAnswer();
startSessionClick(null);
}
}
Как отследить соглашение или отказ от диалога?
В тот момент, когда по соглашению я просто открываю следующую активность (предварительно проверяя стоковые настройки) и если пользователь отказывается, то снова показываю это диалоговое окно.
Трек мне нужен для того, что бы в случае невозможности отобразить диалог с объяснениями.
1 ответ
В своей деятельности вы можете переопределить функцию
onActivityResult
. Он будет вызываться фреймворком и передавать параметр
resultCode
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_ENTER_PHONE) {
if (resultCode == RESULT_OK) {
// user accepted the permission request
...
}
}