Не вызывается onActivityResult

223
26 ноября 2016, 19:26

Для получения разрешения android.permission.SYSTEM_ALERT_WINDOW на Android Marshmallow (6.0) использую вот такой код:

public class GeneralActivity extends Activity {
public final static int ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE = -1010101;
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    Context Context = getBaseContext();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (!Settings.canDrawOverlays(Context)) {
            View APIM = getLayoutInflater().inflate(R.layout.apim, null);
            setContentView(APIM);
            Button ALLOW_BUTTON = (Button) findViewById(R.id.allow_button_apim);
            View.OnClickListener ALLOW_BUTTON_ACTION = new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
                    startActivityForResult(intent, ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE);
                }
            };
            ALLOW_BUTTON.setOnClickListener(ALLOW_BUTTON_ACTION);
        }
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode,  Intent data) {
    Log.d("CALLED", "OnActivity Result"); 
}
}

По нажатию кнопки действительно открывается диалог, в котором я даю приложения права и нажимаю кнопку "назад" и это возвращает меня обратно к приложению, но в onActivityResult ничего не поступило.

Answer 1

Судя по гуглу именно с этим разрешением всё плохо. Куча багов и нормального решения нема на данный момент. Можно лишь попробовать вешать флаг в активити перед запуском настроек, что они запрашиваются сейчас и при следующем вызове onResume() проверить ещё раз разрешение. Если оно есть - значит всё ок - иначе юзер отменил/не включил.

Answer 2

Потому что Permission не вернется в onActivityResult, а вернется в onRequestPermissionsResult. переопределите его и все

READ ALSO
Альтернатива подключения к базе данных Mysq

Альтернатива подключения к базе данных Mysq

Всем привет!Дело в слудующем

235
Как узнать путь к SDK и NDK на Mac?

Как узнать путь к SDK и NDK на Mac?

Как посмотреть в какой директории находятся SDK и NDK на Mac? Куда они обычно устанавливаются?

359
Конвертировать List в массив

Конвертировать List в массив

Здравствуйте, как в Java можно конвертировать Список числовых массивов, в массив массивов (ArrayList int[] to int[][])?

309
разобрать изменить и собрать

разобрать изменить и собрать

Месяцев 3 назад собрал приложениеникаких бд и ничего нет

343