Android 如何获取特定书签URL以在浏览器中打开它

Android 如何获取特定书签URL以在浏览器中打开它,android,browser,Android,Browser,在我的应用程序中,我获取默认浏览器中可用的所有书签,并将其填充到列表视图中。我想要的是,当我单击一个特定的列表项(书签)时,它应该在默认浏览器中直接打开该书签 String[] requestedColumns = { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.VISITS, Browser.BookmarkColumns.BOOKMARK };

在我的应用程序中,我获取默认浏览器中可用的所有书签,并将其填充到列表视图中。我想要的是,当我单击一个特定的列表项(书签)时,它应该在默认浏览器中直接打开该书签

String[] requestedColumns = { Browser.BookmarkColumns.TITLE,
                Browser.BookmarkColumns.VISITS,
                Browser.BookmarkColumns.BOOKMARK };

        @SuppressWarnings("deprecation")
        Cursor faves = managedQuery(Browser.BOOKMARKS_URI, requestedColumns,
                Browser.BookmarkColumns.BOOKMARK + "=1", null,
                Browser.BookmarkColumns.VISITS);
        Log.d("Bookmarks", "Bookmarks count: " + faves.getCount());
        int titleIdx = faves.getColumnIndex(Browser.BookmarkColumns.TITLE);
        String url[] = new String[] {android.provider.Browser.BookmarkColumns.URL};
        Log.d("SimpleBookmarks url", url[0]);
        //int url_column_index = faves.getColumnIndexOrThrow(Browser.BookmarkColumns.URL);
        faves.moveToFirst();
        if (bookmark_check) {
            while (!faves.isAfterLast()) {
                Log.d("SimpleBookmarks", faves.getString(titleIdx));

                HashMap<String, Object> map = new HashMap<String, Object>();
                map.put("bookmark", faves.getString(titleIdx));
                map.put("url", "");
                listitem.add(map);
                faves.moveToNext();
            }
        }

        Log.v("data", "" + listitem);
        SimpleAdapter listitemAdapter = new SimpleAdapter(this, listitem,
                R.layout.list_style, new String[] { "bookmark", "url" },
                new int[] { R.id.topTextView, R.id.bottomTextView });
        lv.setAdapter(listitemAdapter); 
String[]requestedColumns={Browser.BookmarkColumns.TITLE,
Browser.bookmark.columns.visions,
Browser.BOOKMARK columns.BOOKMARK};
@抑制警告(“弃用”)
游标faves=managedQuery(Browser.BOOKMARKS\u URI,requestedColumns,
Browser.BookmarkColumns.BOOKMARK+“=1”,空,
浏览器。书签栏。访问);
Log.d(“Bookmarks”,“Bookmarks count:+faves.getCount());
int titleIdx=faves.getColumnIndex(Browser.BookmarkColumns.TITLE);
字符串url[]=新字符串[]{android.provider.Browser.BookmarkColumns.url};
Log.d(“SimpleBookmarks url”,url[0]);
//int url\u column\u index=faves.getColumnIndexOrThrow(Browser.BookmarkColumns.url);
faves.moveToFirst();
如果(书签检查){
而(!faves.isAfterLast()){
Log.d(“SimpleBookmarks”,faves.getString(titleIdx));
HashMap=newHashMap();
map.put(“bookmark”,faves.getString(titleIdx));
map.put(“url”,“url”);
添加(地图);
faves.moveToNext();
}
}
Log.v(“数据”,“列表项”);
SimpleAdapter listitemAdapter=新SimpleAdapter(此,listitem,
R.layout.list_样式,新字符串[]{“bookmark”,“url”},
新的int[]{R.id.topTextView,R.id.bottomTextView});
lv.setAdapter(listitemAdapter);

终于找到了解决方案

String[] requestedColumns = { Browser.BookmarkColumns.TITLE,
                Browser.BookmarkColumns.URL };

        @SuppressWarnings("deprecation")
        final Cursor faves = managedQuery(Browser.BOOKMARKS_URI,
                requestedColumns, Browser.BookmarkColumns.BOOKMARK + "=1",
                null, null);
        faves.moveToFirst();
        int titleIdx = faves.getColumnIndex(Browser.BookmarkColumns.TITLE);
        final int urlIdx = faves.getColumnIndex(Browser.BookmarkColumns.URL);

        if (bookmark_check) {
            while (!faves.isAfterLast()) {
faves.getString(urlIdx));
                HashMap<String, Object> map = new HashMap<String, Object>();
                map.put("name", faves.getString(titleIdx));
                map.put("phone no", faves.getString(urlIdx));
                listitem.add(map);
                faves.moveToNext();
            }

        }
        SimpleAdapter listitemAdapter = new SimpleAdapter(this, listitem,
                R.layout.list_style, new String[] { "name", "phone no" },
                new int[] { R.id.topTextView, R.id.bottomTextView });
        lv.setAdapter(listitemAdapter);

        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {

                RelativeLayout lr = (RelativeLayout) arg1;
                TextView mText = (TextView) lr.getChildAt(1);
                    String st = mText.getText().toString();
                    if (!st.startsWith("https://") && !st.startsWith("http://")) {
                        st = "http://" + mText.getText().toString();
                    }
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(st));
                    startActivity(i);

            }
        });
String[]requestedColumns={Browser.BookmarkColumns.TITLE,
Browser.bookmark columns.URL};
@抑制警告(“弃用”)
最终光标faves=managedQuery(Browser.BOOKMARKS\u URI,
requestedColumns,Browser.BookmarkColumns.BOOKMARK+“=1”,
空,空);
faves.moveToFirst();
int titleIdx=faves.getColumnIndex(Browser.BookmarkColumns.TITLE);
final int urlIdx=faves.getColumnIndex(Browser.BookmarkColumns.URL);
如果(书签检查){
而(!faves.isAfterLast()){
getString(urlIdx));
HashMap=newHashMap();
map.put(“name”,faves.getString(titleIdx));
map.put(“电话号码”,faves.getString(urlIdx));
添加(地图);
faves.moveToNext();
}
}
SimpleAdapter listitemAdapter=新SimpleAdapter(此,listitem,
R.layout.list_样式,新字符串[]{“name”,“phone no”},
新的int[]{R.id.topTextView,R.id.bottomTextView});
lv.setAdapter(listitemAdapter);
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
RelativeLayout lr=(RelativeLayout)arg1;
TextView mText=(TextView)lr.getChildAt(1);
字符串st=mText.getText().toString();
如果(!st.startsWith(“https://”)&&!st.startsWith(“http://”)){
st=“http://”+mText.getText().toString();
}
意向i=新意向(意向.行动\视图);
i、 setData(Uri.parse(st));
星触觉(i);
}
});