使用Android的Intents在Waze中开始导航

时间:2012-01-10 16:07:08

标签: android android-intent

我有一个简单的Android应用,应该可以在2 GeoPoint之间导航。

我可以轻松地在Waze上显示GeoPoint,写下这小段代码:

String uri = "waze://?ll=40.761043, -73.980545&z=10";
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)));

但是,我真正需要的是一种显示2点之间导航方向的方法。 我试图在Waze源中找到正确的BroadcastReciever,但是当它到达本机调用(JNI)时我停止了跟踪,因为我不知道实际调用的位置...我只到达了{ {1}}签名,没有成功找到实现......

有什么想法吗?

感谢。

5 个答案:

答案 0 :(得分:13)

修复你的意见:

String uri = "waze://?ll=40.761043, -73.980545&navigate=yes";

(添加了导航=是),你应该很好。

答案 1 :(得分:9)

如果这仍然相关,您可以使用:

String uri = "geo: latitude,longtitude";
startActivity(new Intent(android.content.Intent.ACTION_VIEW,
                        Uri.parse(uri)));

答案 2 :(得分:3)

今天的Waze基本网址为https://waze.com/ul,因此要导航,您必须使用

https://waze.com/ul?ll=45.6906304,-120.810983&navigate=yes

答案 3 :(得分:0)

您可以做[kotlin]:

fun openWaze(latitude: Double, longitude: Double) {
    packageManager?.let {
        val url = "waze://?ll=$latitude,$longitude&navigate=yes"
        val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
        intent.resolveActivity(it)?.let {
            startActivity(intent)
        } ?: run {
            Toast.makeText(context, R.string.noWazeAppFound, Toast.LENGTH_SHORT).show()
        }
    }
}

答案 4 :(得分:0)

根据有关使用Waze的Google文档,您可以使用以下代码从android应用中打开Waze:

try {
    // Launch Waze to look for Hawaii:
    String url = "https://waze.com/ul?ll=40.761043,-73.980545&navigate=yes";
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    startActivity(intent);
} catch (ActivityNotFoundException ex) {
    // If Waze is not installed, open it in Google Play:
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.waze"));
    startActivity(intent);
}