Для получения разрешения 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 ничего не поступило.
Судя по гуглу именно с этим разрешением всё плохо. Куча багов и нормального решения нема на данный момент. Можно лишь попробовать вешать флаг в активити перед запуском настроек, что они запрашиваются сейчас и при следующем вызове onResume()
проверить ещё раз разрешение. Если оно есть - значит всё ок - иначе юзер отменил/не включил.
Потому что Permission не вернется в onActivityResult, а вернется в onRequestPermissionsResult. переопределите его и все
Как посмотреть в какой директории находятся SDK и NDK на Mac? Куда они обычно устанавливаются?
Здравствуйте, как в Java можно конвертировать Список числовых массивов, в массив массивов (ArrayList int[] to int[][])?