无法从 Wear 2.0 设备启动导航意图



我目前正在测试磨损 2.0 功能,并决定通过新的地图实现。

我试图从标记的信息窗口单击启动一个非常基本的导航意图,但该应用程序不断崩溃,并出现意想不到的奇怪错误。

我的代码:

@Override
public void onMapReady(GoogleMap googleMap) {
    // Map is ready to be used.
    mMap = googleMap;
    // Set the long click listener as a way to exit the map.
    mMap.setOnMapLongClickListener(this);
    mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
        @Override
        public void onInfoWindowClick(Marker marker) {
            Uri gmmIntentUri = Uri.parse("google.navigation:q=" + marker.getPosition().latitude+","+marker.getPosition().longitude);
            Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
            startActivity(mapIntent);
        }
    });
    // Add a marker in Sydney, Australia and move the camera.
    LatLng sydney = new LatLng(-34, 151);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}

我不断得到的错误:

android.content.ActivityNotFoundException: 未找到处理 Intent { act=android.intent.action.VIEW dat=google.navigation:q=-34.0,151.0 }

我做错了什么吗? 在 Wear 2.0 Android O 模拟器上运行。

我正在浏览有关此的文档,并注意到一个区别。在Google API文档中,他们有一行明确设置了要启动的应用程序的软件包。你的代码没有:

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

尝试添加上述代码片段中的第三行,看看是否启动了正确的应用程序。

当对startActivity(Intent)或其变体之一的调用失败时,会抛出ActivityNotFoundException,因为找不到执行给定意图的活动。您可以参考此线程,该线程指出,在创建Android虚拟设备时,应选择Google API作为目标。如果您没有安装它们,则可以使用 SDK 管理器下载它。

Wear 2.0地图系统本身不包括导航,这就是它崩溃的原因。显然,它正在即将推出的Watch OS中添加。

相关内容

  • 没有找到相关文章

最新更新