-1
votes

Erreur de retour de Google Maps Intention: Aucune activité trouvée pour gérer l'intention

J'ai un naviguer code> méthode: xxx pré>

appelé quand je clique sur un textview code>: p>

public class AttractionAdapter extends ArrayAdapter<Attraction> {


    public AttractionAdapter(Context context, ArrayList<Attraction> attractions) {
        super(context, 0, attractions);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View listItemView = convertView;
        if (listItemView == null) {
            listItemView = LayoutInflater.from(getContext()).inflate(
                    R.layout.list_item, parent, false);
        }

        final Attraction currentAttraction = getItem(position);

        ImageView imageView = (ImageView) listItemView.findViewById(R.id.attraction_image);
        imageView.setImageResource(currentAttraction.getImageResourceId());

        TextView attractionName = (TextView) listItemView.findViewById(R.id.attraction_name);
        attractionName.setText(currentAttraction.getName());

        TextView location = (TextView) listItemView.findViewById(R.id.location);
        location.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                navigate(currentAttraction.getLocation());
            }
        });

        // Find the ImageView in the list_item.xml layout with the ID image.
        TextView contact = (TextView) listItemView.findViewById(R.id.contact);
        // Check if an image is provided for this word or not
        if (currentAttraction.hasContact()) {
            // If an image is available, display the provided image based on the resource ID
            contact.setText(currentAttraction.getContact());
            // Make sure the view is visible
            contact.setVisibility(View.VISIBLE);
        } else {
            // Otherwise hide the ImageView (set visibility to GONE)
            contact.setVisibility(View.GONE);
        }

        return listItemView;
    }

    public void navigate(String coordinates){

        Uri intentUri = Uri.parse("geo"+coordinates);
        Intent mapIntent = new Intent(Intent.ACTION_VIEW);
        mapIntent.setData(intentUri);
        mapIntent.setPackage("com.google.android.apps.maps");
        getContext().startActivity(mapIntent);
    }
}


0 commentaires

3 Réponses :


0
votes

Vous avez oublié le côlon après Geo:

Uri intentUri = Uri.parse("geo:"+coordinates);


0 commentaires

0
votes

Nourdi publique Navigate (contexte context, coordonnées de chaîne) { xxx

naviguer (getcontext, courantattraction.getlocation ());


0 commentaires

0
votes

Il est toujours sûr de vérifier s'il existe une activité pour gérer l'intention ou non avant de tirer une intention implicite.

ATTENTION : Il est possible qu'un utilisateur n'ait pas d'applications qui gèrent l'intention implicite que vous envoyez au démarrage (). Ou une application peut être inaccessible en raison des restrictions de profil ou des paramètres mis dans place par un administrateur. Si cela se produit, l'appel échoue et votre App se bloque. Pour vérifier qu'une activité recevra l'intention, appelez résolvement () sur votre objectif d'intention. Si le résultat est non nul, Il y a au moins une application qui peut gérer l'intention et sa sécurité appeler startactivité (). Si le résultat est nul, n'utilisez pas l'intention xxx

vérifier la documentation officielle ici


3 commentaires

Merci. L'intention ouvre désormais Google Maps, mais au lieu d'afficher l'emplacement, il s'agit simplement d'un écran vide avec la barre de recherche sur le dessus et de pas de carte.


Pouvez-vous ajouter ici ce que vos coordonnées ressemblent? Vous pouvez également essayer avec des données d'exemple comme Geo: 37.7749, -122.4194 ?


Cela semble travailler maintenant, je ne suis vraiment pas sûr de ce qui a changé. Cela aurait pu être l'appareil jouant. Merci de votre aide.