1

我正在开发一个应用程序,以便通过以下代码连接到 Google Navigator..

import android.app.Activity; 
import android.content.Context;
import android.content.Intent;
import android.net.Uri;

public static void Call_GoogleMapsNavigation(int longitud,int latitud)
{
Intent i = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("google.navigation:q=" +latitud+ ","+longitud+"")); 
Context.startActivity(i); 
}

...但我收到以下错误:

返回错误:

GWDCPSET_GlobalProcedures_MobileDevice.java:1223: cannot find symbol
symbol : method startActivity(android.content.Intent)
location: class antay.cfsatv30.wdgen.GWDCPSET_GlobalProcedures_MobileDevice
startActivity(i); 
^

我找不到问题的解决方案...

非常感谢,

4

3 回答 3

1

为了进一步解释上面的答案。这意味着你不能/不应该不静态调用startActivity(intent).

Context.startActivity(intent); //wrong notice capital 'C'

您需要一个 Context 实例。

因此,最简单的做法是在静态方法中添加一个参数:( 注意小写“c”作为 Java 中方法名称的约定)

public static void call_GoogleMapsNavigation(final Context context, int longitud,int latitud) { 

        ...
        context.startActivity(i); //right
}

因此,例如在您的活动或应用程序中包含对上下文实例的引用的任何组件中,您可以按如下方式调用您的方法

为简单起见,我假设您从活动中调用它(始终包含对上下文的引用):

MainActivity extends AppCompatActivity { 

    OnCreate(Bundle savedInstance) {
        <YourHelperClass>.callGoogleMapsNavigation(this, 23, 44); //static call
    }
}

希望这可以帮助 :)

于 2016-06-14T13:03:53.663 回答
0

试试这种方式:

Context oContext;
oContext= mContext;
Intent i = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("google.navigation:q=" + latitud+ "," + longitud));
oContext.startActivity(i);
于 2012-04-11T05:01:18.810 回答
0

Uri.parse("google.navigation:q=" +latitud+ ","+longitud+""));

getContext.startActivity(i); //to get the context the method is called in

于 2021-04-19T22:51:22.700 回答