6
votes

Autorisations manquantes requises par Bluetootoadapter.isenabled.Bluetooth

i Ajouter Bluetooth à mon application, mais je suis dans le problème suivant. Lorsque je fais le code: xxx pré>

L'erreur est sur la ligne suivante: p>

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<permission android:name="android.permission.BLUETOOTH" android:label="BLUETOOTH" />
<permission android:name="android.permission.BLUETOOTH_ADMIN" />


6 commentaires

Pouvez-vous fournir le code de votre activité / fragment.


Testez-vous avec Android 6.0 ou plus? Vous devez demander la permission au moment de l'exécution. Avoir la permission dans le androidmanifest.xml n'est pas suffisant. Lire ici: développeur.android.com/training/permissions/requesting.html Voir un exemple simple ici: Stackoverflow. com / questions / 33666071 / ...


@ th3pat3l Pourriez-vous me dire spécifiquement comment faire des autorisations de temps d'exécution pour Bluetooth?


@ Computerseek101 Consultez ma réponse. Cela devrait vous donner une idée de ce que vous devez faire à Android M et au-dessus


Avez-vous copié et coller ce message d'erreur exactement?


Quand je tape @requiredapi, cela me donne une erreur. Est-ce que tu sais pourquoi? Il dit que je ne peux pas résoudre le symbole.


3 Réponses :


3
votes

Disons que vous avez un bouton, puis vous cliquez dessus, Bluetooth doit allumer. Voici un exemple rapide Comment vous le feriez pour Android 6.0 et plus.

Premièrement, déclarez cette variable dans votre Activité code> / fragment code>: p>

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode) {
        case PERMISSION_ASK:
            if(grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
                // all requested permissions were granted
                // perform your task here
            } else {
                // permissions not granted
                // DO NOT PERFORM THE TASK, it will fail/crash
            }
            break;
        default:
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            break;
    }
}


5 commentaires

La nouvelle devise de Google: "Transformer une ligne de code en cent, depuis 2008."


@Kevinkrumwiede Je vois ce que vous voulez dire, mais regardez-le de cette façon, au moins l'option est là. iOS n'autorise même pas l'application non système d'allumer des fonctionnalités WiFi ou simples comme celle-là. Android est utilisé sur autant de systèmes différents à de nombreux niveaux de version différents. Bien sûr, plus de travail seront nécessaires. iOS est construit pour un téléphone. Pas beaucoup d'options là-bas


Je comparais cela aux versions antérieures d'Android, pas iOS. Google cherche toujours des moyens de faire de simples choses plus difficiles et les autorisations d'exécution étaient totalement incontournables. Je ne cible tout simplement pas 6+ jusqu'à ce que Google arrive à ses sens.


Je ne sais pas. Personnellement, je ne l'appelerais pas ubcalled - pour un mauvais trajet. La fonctionnalité est la capacité d'octroyer et de refuser la permission du point de vue de l'utilisateur. Pas le fait qu'il rend la vie de développeur facile / difficile


Ma version androïde cible est sucette, alors quand j'ai essayé ceci, il n'a pas fonctionné



2
votes
  1. Vous n'avez besoin que de étiquette car vous utilisez une autorisation. Vous n'avez pas besoin d'une balise car ce n'est pas votre permission personnalisée.
  2. Peut-être que vous avez placé Tag dans le mauvais élément du manifeste, mais je ne peux rien dire d'autre avec les informations que vous avez fournies
  3. Étant donné que votre BluetoothAdapter peut être nul, d'ajouter à la seconde si NULL POINTER Vérifiez ou ajoutez un retour en premier si
  4. Il est également agréable d'avoir tag

1 commentaires

Merci, j'ai accidentellement mis mes autorisations dans les balises d'application.



1
votes

pour Android 6.0 et plus, vous devez ajouter ce qui suit au fichier manifeste xxx


0 commentaires