在浏览器中打开链接?

时间:2012-01-29 08:18:20

标签: android file browser web kml

我一直在尝试使用浏览器打开指向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中显示任何内容。

1 个答案:

答案 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());