获取浏览器书签uri只知道包名称

时间:2015-01-29 16:40:34

标签: android browser browser-history

A可以使用以下代码获取所有已安装的Web浏览器:

ArrayList<String> allLaunchers = new ArrayList<String>();

Intent allApps = new Intent(Intent.ACTION_MAIN);
List<ResolveInfo> allAppList = getPackageManager().queryIntentActivities(allApps, 0);
for(int i =0;i<allAppList.size();i++) allLaunchers.add(allAppList.get(i).activityInfo.packageName);

Intent myApps = new Intent(Intent.ACTION_VIEW);
       myApps.setData(Uri.parse("http://www.google.es"));
List<ResolveInfo> myAppList = getPackageManager().queryIntentActivities(myApps, 0);
for(int i =0;i<myAppList.size();i++){
    if(allLaunchers.contains(myAppList.get(i).activityInfo.packageName)){
        Log.e("match",myAppList.get(i).activityInfo.packageName+"");
    }
}

link:Android Fetch installed and default browser in device

根据包名称,有没有办法为每个浏览器获取BOOKMARKS URI?

当我获得浏览器列表时,按包名称(通过上述方法),我需要获取其书签(浏览历史记录)数据库的链接,例如:

在Chrome上,软件包名称为com.android.chrome,历史记录URI为content://com.android.chrome.browser/bookmarks,但这种情况特殊,只有.browser被添加到真实软件包名称...在大多数情况下它完全不同。就像在FF中,包名称是org.mozilla.firefox,历史uri不同:content://org.mozilla.firefox.db.browser/bookmarks(是的,我知道它不能在FF中读取),但只是一个例子。

所以基本上问题是:有没有办法,知道这个:org.mozilla.firefox,得到这个:content://org.mozilla.firefox.db.browser/bookmarks

0 个答案:

没有答案