-1

Androidアプリに許可を求めるダイアログボックスを投稿させ、ユーザーが許可したときに特定のコマンドのみを実行する方法を見つけました。しかし、その後アプリを再起動することに固執しています.Androidのバグのため、再起動しない限りアプリには許可がありません。

コードのようなものは機能していないようです。アプリは再起動しますが、元の場所から離れます。最初の起動時にデバイスによって割り当てられた同じ設定を維持します。

// Schedule start after 1 second
        PendingIntent pi = PendingIntent.getActivity(this, 0, getIntent(), PendingIntent.FLAG_CANCEL_CURRENT);
        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        am.set(AlarmManager.RTC, System.currentTimeMillis() + 10000, pi);

        // Stop now
        System.exit(0);

アプリを再起動する別の方法はありますか。電話が特定のことを行う許可があることをアプリに伝えることができる方法です。

4

1 に答える 1

1

実行時のアクセス許可の要求は非同期で行われるためonRequestPermissionsResult()、アクセス許可を要求するアクティビティでオーバーライドする必要があります。このような:

@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults) {


    switch (requestCode) {
        case Constants.YOUR_REQUEST_CODE: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // permission was granted. do your stuff here
            } else {
                // Permission denied - Show a message to inform the user that this app only works
                // with these permissions granted

            }
            return;
        }

    }
}
于 2016-07-29T15:05:42.863 に答える