Открываете ссылку в браузере? - PullRequest
2 голосов
/ 29 января 2012

Я пытался использовать намерение открыть ссылку на файл kml с помощью браузера.Таким образом, когда он перейдет по ссылке, он загрузит и откроет файл в Google Maps (или Google Earth).Однако, когда я нажимаю на него в эмуляторе, кажется, ничего не происходит.Есть идеи?

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 Ответ

2 голосов
/ 29 января 2012

Чтобы метод startActivity() запустил Intent, вам нужно либо вызвать его из класса или подклассов (например, Activity, FragmentActivity) Context, либо получить ссылку на контекст и назовите его.

Поскольку ваш класс 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());
...