Russian Qt Forum

Qt => Qt Embedded => Тема начата: Гурман от Ноябрь 23, 2017, 21:58



Название: Как в Qt-приложении для Android поймать onRequestPermissionsResult?
Отправлено: Гурман от Ноябрь 23, 2017, 21:58
Нужно для Android 6 запрашивать разрешения у пользователя и получать его ответ. Запрашивать получается, но получать ответ - нет.

Код:
public class PlayControl extends QtActivity
{
.....
    public static boolean requestPermission()
    {
        boolean p = true;
        if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.M )
        {
            Activity a = QtNative.activity();
            Context c = a.getApplicationContext();
            if( c.checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED )
            {
                ActivityCompat.requestPermissions(a, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE,
                                                    Manifest.permission.READ_EXTERNAL_STORAGE,
                                                    Manifest.permission.RECORD_AUDIO }, 1);
                p = false;
            }
        }
        return p;
    }

    public void onRequestPermissionsResult(int requestCode, String permissions[], int grantResults[])
    {
        NativeCall.permissionsGranted();
    }
}

Колбэк onRequestPermissionsResult(...) хронически не вызывается. Примеров для Qt не нашёл. Может кто видел как это сделать? Именно в Qt.