Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从浏览器历史记录中提取URL时,它显示无法解析符号';书签列';_Java_Android_Uri_Android Permissions_Android Query - Fatal编程技术网

Java 从浏览器历史记录中提取URL时,它显示无法解析符号';书签列';

Java 从浏览器历史记录中提取URL时,它显示无法解析符号';书签列';,java,android,uri,android-permissions,android-query,Java,Android,Uri,Android Permissions,Android Query,我正在尝试从浏览器历史记录中提取URL。我找到了下面的代码并尝试实现它。但问题是它在书签列,书签(URI,noicon中给出了错误 我在API级别16、23、25中尝试了这一点。但这个错误并没有解决。它总是说“无法解析符号'BookmarkColumns'” 请帮我解决这个问题 import android.content.ContentResolver; import android.database.Cursor; import android.graphics.Bitmap; import

我正在尝试从浏览器历史记录中提取URL。我找到了下面的代码并尝试实现它。但问题是它在
书签列
书签(URI
noicon
中给出了错误

我在API级别16、23、25中尝试了这一点。但这个错误并没有解决。它总是说“无法解析符号'BookmarkColumns'”

请帮我解决这个问题

import android.content.ContentResolver;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.provider.Browser;
import android.support.v7.app.AppCompatActivity;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {

    private ArrayList<String> titles;
    private ArrayList<String> urls;
    private ArrayList<Bitmap> bitmaps;
    private ContentResolver cr;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        createLists();
    }

    protected void onResume() {
        super.onResume();
        getBH();
        showHistoryBookmarks();

    }

    public void createLists() {
        titles = new ArrayList<String>();
        urls = new ArrayList<String>();
        bitmaps = new ArrayList<Bitmap>();

    }

    public void getBH() {
        Bitmap icon;
        cr = getContentResolver();
        String order = Browser.BookmarkColumns.DATE + " DESC";
        String[] projection = {Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL, Browser.BookmarkColumns.FAVICON};
        //String selection=projection[0]+"=?";
        //String args[]={"Google"};
        Cursor rows = cr.query(Browser.BOOKMARKS_URI, projection, null, null, order);
        if (rows.getCount() > 0) {
            while (rows.moveToNext()) {
                //read title
                String title = rows.getString(rows.getColumnIndex(projection[0]));
                //read url
                String url = rows.getString(rows.getColumnIndex(projection[1]));
                //read icon
                byte[] bicon = rows.getBlob(rows.getColumnIndex(projection[2]));
                if (bicon != null) {
                    //convert blob image data to Bitmap
                    icon = BitmapFactory.decodeByteArray(bicon, 0, bicon.length);

                } else {
                    //default icon for history and bookmarks that do not icons
                    icon = BitmapFactory.decodeResource(getResources(), R.drawable.noicon);
                }
                //add to lists
                addToList(title, url, icon);
            }
            //close the cursor
            rows.close();
        }


    }


    public void addToList(String title, String url, Bitmap bitmap) {

        titles.add(title);
        urls.add(url);
        bitmaps.add(bitmap);

    }


    public void showHistoryBookmarks() {
        ListView l = (ListView) findViewById(R.id.hb_list);
        if (l != null) {
            if (titles.size() > 0) {
                ListAdapterModel aa = new ListAdapterModel(this, R.layout.listlayout, R.id.hbtitle, titles, urls, bitmaps);
                l.setAdapter(aa);
            } else {
                Toast.makeText(this, "This is no bookmark or history.", Toast.LENGTH_SHORT).show();
            }
        }

    }
}
导入android.content.ContentResolver;
导入android.database.Cursor;
导入android.graphics.Bitmap;
导入android.graphics.BitmapFactory;
导入android.os.Bundle;
导入android.provider.Browser;
导入android.support.v7.app.AppActivity;
导入android.widget.ListView;
导入android.widget.Toast;
导入java.util.ArrayList;
公共类MainActivity扩展了AppCompatActivity{
私人ArrayList头衔;
私有ArrayList URL;
私有ArrayList位图;
私有内容解析器cr;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createList();
}
受保护的void onResume(){
super.onResume();
getBH();
showHistoryBookmarks();
}
公共void createList(){
titles=新的ArrayList();
URL=新的ArrayList();
位图=新的ArrayList();
}
公共无效getBH(){
位图图标;
cr=getContentResolver();
字符串顺序=Browser.BookmarkColumns.DATE+“DESC”;
String[]projection={Browser.BookmarkColumns.TITLE,Browser.BookmarkColumns.URL,Browser.BookmarkColumns.FAVICON};
//字符串选择=投影[0]+“=?”;
//字符串args[]={“谷歌”};
游标行=cr.query(Browser.BOOKMARKS\u URI,投影,null,null,order);
if(rows.getCount()>0){
while(rows.moveToNext()){
//阅读标题
字符串标题=rows.getString(rows.getColumnIndex(投影[0]);
//读取url
字符串url=rows.getString(rows.getColumnIndex(投影[1]);
//阅读图标
字节[]bicon=rows.getBlob(rows.getColumnIndex(投影[2]);
if(bicon!=null){
//将blob图像数据转换为位图
icon=BitmapFactory.decodeByteArray(bicon,0,bicon.length);
}否则{
//历史记录的默认图标和不包含图标的书签
icon=BitmapFactory.decodeResource(getResources(),R.drawable.noicon);
}
//添加到列表
addToList(标题、url、图标);
}
//关闭光标
rows.close();
}
}
公共void addToList(字符串标题、字符串url、位图){
标题。添加(标题);
添加(url);
位图。添加(位图);
}
public void ShowHistory书签(){
ListView l=(ListView)findViewById(R.id.hb_列表);
如果(l!=null){
如果(titles.size()>0){
ListAdapterModel aa=新的ListAdapterModel(this,R.layout.listlayout,R.id.hbtitle,titles,URL,位图);
l、 setAdapter(aa);
}否则{
Toast.makeText(这是“这不是书签或历史记录”,Toast.LENGTH_SHORT).show();
}
}
}
}

试试这些。阅读文档并试一试。我没有试过。但思想是不可行的

这些API在Android 7.0 SDK IIRC中被删除。一开始它们从来都不是一个特别好的主意。谢谢。如果他们删除了这些API,那么他们必须添加类似的API。Commonware没有任何API吗。对不起,打扰你了。我非常紧张。“如果他们删除了这些API,那么他们必须添加类似的API,我想”--不。每个浏览器应用程序,如果它选择的话,都可以有自己的API。如果我想浏览浏览器历史,有没有API可以做到这一点?有什么建议吗?我不知道Chrome是否有这个API——对不起!