[JAVA] Traitez avec l'autorisation d'exécution Android en une seule ligne

Lors du développement d'applications Android ces jours-ci, je souffre souvent de l'autorisation d'exécution Android. Runtime avec ajoutez simplement une ligne </ font> pour prendre en charge cette autorisation d'exécution J'ai créé une bibliothèque qui peut gérer l'autorisation. https://github.com/TakuKobayashi/RuntimePermissionChecker Si vous le souhaitez, j'aimerais recevoir des "étoiles" et des "j'aime", ou "partager" et les diffuser. M (_ _) m

Méthode d'introduction

Télécharger

build.gradle (voir l'image ci-dessous)

Ajout du contenu suivant aux dépendances de

build.gradle


dependencies {
    implementation 'net.taptappun.taku.kobayashi:runtimepermissionchecker:1.1.1'
}

Cela introduira la bibliothèque dans votre projet Android.

la mise en oeuvre

Une fois la bibliothèque installée, ajoutez-la à votre activité comme indiqué dans l'exemple ci-dessous.

MainActivity.java


public class MainActivity extends Activity {
    private static final int REQUEST_CODE = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        RuntimePermissionChecker.requestAllPermissions(this, REQUEST_CODE);
    }
}

cette

RuntimePermissionChecker.requestAllPermissions(Activity activity, int requestCode);

Après cela, le processus de confirmation de l'autorisation Android est automatiquement exécuté en ajoutant à n'importe quel endroit. * La boîte de dialogue de confirmation de l'autorisation Android apparaîtra uniquement, n'oubliez donc pas d'ajouter le paramètre d'autorisation à AndroidManifest.xml comme indiqué ci-dessous. </ Font> >

AndroidManifest.xml


<uses-permission android:name="Nom de l'autorisation" />

Je souhaite spécifier l'autorisation individuellement au lieu de toutes en même temps

MainActivity.java


public class MainActivity extends Activity {
    private static final int REQUEST_CODE = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        RuntimePermissionChecker.requestPermission(this, REQUEST_CODE, Manifest.permission.CAMERA);
    }
}

cette

RuntimePermissionChecker.requestPermission(Activity activity, int requestCode, String requestPermission);

En ajoutant à n'importe quel endroit, le processus de confirmation de l'autorisation spécifiée est exécuté en spécifiant le nom de l'autorisation que vous souhaitez entendre individuellement dans le troisième argument ci-dessus (String requestPermission). (Dans le cas ci-dessus, l'écran de confirmation d'autorisation de la caméra sera affiché.)

Supplément

Je souhaite exécuter le traitement lorsque toutes les autorisations sont autorisées

Dans ce cas, [onRequestPermissionsResult](https://developer.android.com/reference/android/app/Activity.html#onRequestPermissionsResult(int, java.lang.String [], int [])) comme indiqué dans l'exemple ci-dessous. Fait exécuter le processus lorsque le rappel de est appelé.

MainActivity.java


public class MainActivity extends Activity {
    private static final int REQUEST_CODE = 1;

    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        if (requestCode != REQUEST_CODE)
            return;
        if(!RuntimePermissionChecker.existConfirmPermissions(this)){
            // write features you want to execute.
        }
    }
}

cette

RuntimePermissionChecker.existConfirmPermissions(Activity activity);

Sera ture </ font> s'il y a encore des autorisations à écouter.

Je veux vérifier si une autorisation individuelle est autorisée

Si vous souhaitez vérifier si une autorisation individuelle est autorisée plutôt que lorsque toutes les autorisations sont autorisées ci-dessus

RuntimePermissionChecker.hasSelfPermission(Activity activity, String requestPermission);

Vous pouvez vérifier en utilisant cette méthode. Nom de l'autorisation que vous souhaitez vérifier individuellement dans le deuxième argument de cette méthode Si vous le spécifiez et qu'il est déjà autorisé, ce sera ture </ font>.

Et si Android 6.0 Marshmallow (niveau d'API 23) ou inférieur?

Le traitement ci-dessus inclut également la correspondance dans ce cas.

Que faire si l'utilisateur a déjà accordé l'autorisation?

Le traitement ci-dessus inclut également la correspondance dans ce cas.

Qu'est-ce que l'autorisation d'exécution en premier lieu?

À partir d'Android 6.0 Marshmallow (niveau d'API 23), vous devez demander l'autorisation d'un utilisateur pour utiliser une fonctionnalité spécifique lors de l'exécution de l'application, et vous ne pouvez pas utiliser la fonctionnalité sans l'autorisation de cet utilisateur. .. (Stockage d'informations sur une caméra, un microphone, une carte SD, etc.) Bref, c'est un dialogue comme celui-ci. 68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f33343438382f32303466316232632d623732362d363466612d346235662d3639343333386565613136372e706e67.png Bien entendu, pour afficher cette boîte de dialogue, il est nécessaire d'écrire le processus côté application. Voir ici pour plus de détails

En tant que personne qui développe de nombreuses applications Android et développe des applications Android depuis l'époque de la série Android 2, je ne veux pas penser à mettre en œuvre cette autorisation d'exécution, donc comme concession maximale, j'ai réussi à ajouter une seule ligne. Je voulais. Par conséquent, quelle que soit l'application que vous créez

  • Mettez cette bibliothèque pour le moment
  • Appelez cette méthode pour le moment

J'ai donc essayé d'en faire quelque chose qui résoudrait tout.

  • Pour la première version de la bibliothèque Android cette fois, nous nous sommes référés à divers articles ci-dessous.

référence


Postscript 2017/12/13 (mercredi) J'ai pu m'inscrire à Bintray. J'ai également pu m'inscrire sur jcenter, j'ai donc mis à jour la méthode d'installation de la bibliothèque.