Question sur le Manifest.xml

Toutes les questions sur le développement Mobile, y compris la partie script.
Avatar de l’utilisateur
frieurieud
Messages : 8
Inscription : 19 Fév 2019 19:03
Localisation : Avignon

Question sur le Manifest.xml

Message par frieurieud » 19 Fév 2019 19:50

Bonjour à tous,

Je souhaite que mon smartphone affiche ma position GPS sous Unity pour tester.

Il y a une chose que je ne comprend pas bien.
Si je souhaite utiliser le GPS et que je l'active dans le code, normalement, une fois buildé, le manifest se créé automatiquement avec les permissions adéquats.
Hors "Input.location.status" m'indique "stopped" (Le GPS étant activé sur le smartphone).
En cherchant sur internet je découvre qu'il faudrait ajouter à la main dans le manifest les permissions ?!?

Qu'en pensez-vous ? (ci-dessous le bout de code)
Merci d'avance.

Code : Tout sélectionner

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class gpsLocation : MonoBehaviour {
    public float longitude;
    public float latitude;
    public Text gpsText;
    public Text errorText;

    void Start () {
        if (Input.location.isEnabledByUser)
            StartCoroutine(GetLocation());
    }

    private void StartCoroutine(IEnumerable enumerable) {
        throw new NotImplementedException();
    }

    private IEnumerable GetLocation() {
        Input.location.Start();
        while(Input.location.status == LocationServiceStatus.Initializing) {
            yield return new WaitForSeconds(0.5f);
        }
        latitude = Input.location.lastData.latitude;
        longitude = Input.location.lastData.longitude;
        yield break;
    }
	
    void Update () {
        latitude = Input.location.lastData.latitude;
        longitude = Input.location.lastData.longitude;
        gpsText.text = "Lat : " + latitude + "\n Long : " + longitude;

        errorText.text = "status : " + Input.location.status;
    }
}
    
Ne jamais dire "jamais"...oups j'lai dis :oops:

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Question sur le Manifest.xml

Message par boubouk50 » 20 Fév 2019 09:54

A priori, tu ne devrais devoir qu'ajouter ces lignes dans le manifest:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />


sources:
https://stackoverflow.com/questions/213 ... ermissions
https://docs.unity3d.com/Manual/android-manifest.html
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
frieurieud
Messages : 8
Inscription : 19 Fév 2019 19:03
Localisation : Avignon

Re: Question sur le Manifest.xml

Message par frieurieud » 20 Fév 2019 10:16

Bonjour et merci pour ta réponse.
Donc si je comprend bien, dès qu'on utilise une fonctionnalité comme l'accéléromètre ou le gyromètre on doit le rajouter au manifest.

Autre question ;-) , Unity parle d'override ce qui signifie (en principe) qu'il ne faut pas réécrire en entier manifest.xml mais seulement créér le fichier et y placer
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />

Me trompe-je ? Je ne trouve aucune info là-dessus.

Merci
Ne jamais dire "jamais"...oups j'lai dis :oops:

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Question sur le Manifest.xml

Message par boubouk50 » 20 Fév 2019 10:28

N'as-tu pas de manifest déjà présent? (Assets/Plugins/Android/[...]/AndroidManifest.xml)
Il faut insérer ces lignes dedans (à l'endroit des autres permissions).
Aussi, dans les builds settings, tu as un bouton radio Low Accuracy Location. Le tooltip de ce bouton t'indique que la permission ACCESS_FINE_LOCATION est automatiquement ajoutée au Manifest lorsque l'API de géolocalisation est appelée depuis un script. Donc à priori, la permission est déjà ajoutée.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
frieurieud
Messages : 8
Inscription : 19 Fév 2019 19:03
Localisation : Avignon

Re: Question sur le Manifest.xml

Message par frieurieud » 20 Fév 2019 20:09

Merci.
J'ai bien trouvé l'option "Low Accuracy Location" que j'ai coché.
Non je n'ai pas de manifest (ni le dossier plugin).
J'ai lancer le builder, le smartphone me demande l'autorisation d'utiliser location mais la suite ne change rien : longitude, latitude à zéro et le status à stopped.
Par contre une fois cela fait, je me retrouve maintenant avec 4 androidManifest.xml éparpillés dans le dossier "temp" avec les permissions requises.
Ne jamais dire "jamais"...oups j'lai dis :oops:

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Question sur le Manifest.xml

Message par boubouk50 » 21 Fév 2019 10:00

Tu n'as pas besoin d'activer le bouton radio Low Accuracy Location.
Tout est expliqué dans la doc que je t'ai donné: AndroidManifest
To examine the final Android Manifest that Unity has generated for your app, open the Temp/StagingArea/AndroidManifest.xml file after you have built your Project but before exiting the Unity Editor. Tu peux donc le retrouver ici. Tu peux même le copier coller dans le dossier Assets/Plugins/Android/
Tu verras si la permission ACCESS_FINE_LOCATION est donnée.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
frieurieud
Messages : 8
Inscription : 19 Fév 2019 19:03
Localisation : Avignon

Re: Question sur le Manifest.xml

Message par frieurieud » 22 Fév 2019 10:22

Ah je n'avais pas vu le coup du dossier Temp dans la doc :?
J'y ai ajouté la permission ACCESS_FINE_LOCATION qui était manquante.
Mais ça ne fonctionnait toujours pas du côté smartphone. Je revois mon code et le change totalement...toujours rien.
Je teste sur un autre smartphone pourtant plus ancien et là...ça fonctionne Rhâââ :evil:
C'est dingue ça, je fais des testes sur un wiko qui accepte la RA mais a des soucis avec le gps (visiblement) et c'est mon vieux Samsung qui vient à la rescousse pour le gps. Bref.
Merci pour tout, tu m'as bien aiguillé, maintenant je vais voir pour que les données gps s'affichent en temps réel lors de mon déplacement.
Ne jamais dire "jamais"...oups j'lai dis :oops:

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »