我一直在尝试使用浏览器打开指向kml文件的链接。这样,当它转到链接时,它将下载并在Google地图(或Google地球)中打开该文件。但是,当我在模拟器中点击它时,似乎没有任何事情发生。有什么想法吗?
package shc_BalloonSat.namespace;
import android.content.Intent;
import android.net.Uri;
public class dl_viewKML
{
void downloadFile()
{
String encodedURL = "http://" + "www.wktechnologies.com/shc_android_app/data.kml";
Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(encodedURL));
startActivity(webIntent);
}
private void startActivity(Intent webIntent)
{
// TODO Auto-generated method stub
}
}
Eclipse没有显示任何问题,并且它没有在LogCat中显示任何内容。
答案 0 :(得分:2)
要使方法startActivity()
启动Intent
,您必须从Context
的类或子类(如Activity,FragmentActivity)调用它,或者获取对上下文的引用,叫它。
因为您的类dl_viewKML
不是Context
的子类,所以您必须获得对上下文的引用。您可以通过添加带Context
参数的构造函数来完成此操作,如下所示:
package shc_BalloonSat.namespace;
import android.content.Intent;
import android.net.Uri;
public class dl_viewKML {
private Context ctx
public dl_viewKML(Context ctx) {
this.ctx = ctx;
}
void downloadFile()
{
String encodedURL = "http://" + "www.wktechnologies.com/shc_android_app/data.kml";
Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(encodedURL));
ctx.startActivity(webIntent);
}
}
在实例化Activity
课程的dl_viewKML
中,您将执行以下操作:
dl_viewKML obj = new dl_viewKML(this);
或
dl_viewKML obj = new dl_viewKML(getApplicationContext());