[JAVA] Demande d'autorisation Android (pluriel)

Demande d'autorisation d'exécution Android

Il y a longtemps, j'ai écrit comment autoriser l'autorisation individuellement à partir de l'écran de configuration dans Android System Permission, mais la boîte de dialogue s'affiche dans l'application. Je l'ai laissé longtemps à essayer de savoir comment. Je l'ai vérifié, je vais donc l'écrire à nouveau.

Cette autorisation

Cette fois, pour utiliser l'application d'enregistrement créée dans le passé, utilisez l'autorisation suivante.

AndroidManifest.xml


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.VIBRATE"/>

code

Le flux est que la boîte de dialogue Permission est affichée et autorisée dans MainActivity, et lorsqu'elle est terminée, la transition vers startRecordingActivity est effectuée et l'enregistrement est démarré.

MainActivity.java


package com.example.testrecordingpermission;

import android.content.Intent;
import android.content.pm.PackageManager;
import android.Manifest;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private final int REQUEST_CODE = 1000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Android 6,Vérifiez les autorisations avec l'API 23 ou supérieure
        if(Build.VERSION.SDK_INT >= 23) {
            String[] permissions = {
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
                    Manifest.permission.RECORD_AUDIO,
                    Manifest.permission.VIBRATE
            };
            checkPermission(permissions, REQUEST_CODE);
        }

        startRecordingActivity();
    }

    //Confirmation de l'autorisation des informations de localisation
    public void checkPermission(final String[] permissions,final int request_code){
        //Seuls ceux qui ne sont pas autorisés seront affichés dans la boîte de dialogue
        ActivityCompat.requestPermissions(this, permissions, request_code);
    }

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

            case REQUEST_CODE:
                for(int i = 0; i < permissions.length; i++ ){
                    if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
                        Toast toast = Toast.makeText(this,
                                "Added Permission: " + permissions[i], Toast.LENGTH_SHORT);
                        toast.show();
                    } else {
                        Toast toast = Toast.makeText(this,
                                "Rejected Permission: " + permissions[i], Toast.LENGTH_SHORT);
                        toast.show();
                    }
                }
                break;
            default:
                break;
        }
    }

    //Démarrer l'enregistrement avec l'intention
    private void startRecordingActivity() {
        Intent intent = new Intent(getApplication(), RecordingActivity.class);
        startActivity(intent);
    }
}

résultat

L'autorisation VIBRATE ne nécessite pas d'autorisation, donc les boîtes de dialogue WRITE_EXTERNAL_STRAGE et RECORD_AUDIO s'affichent. Succès.

      

L'affichage / l'autorisation de la boîte de dialogue a réussi, mais il n'a pas été affiché au démarrage de l'application, et il n'a été affiché qu'après la fermeture de l'application. Je souhaite vraiment qu'il s'affiche immédiatement après le lancement de l'application. Revérifier.

Recommended Posts

Demande d'autorisation Android (pluriel)
Mémo Android - J'étais accro à la permission