Android Browser.BOOKMARKS\u URI不再存在?

Android Browser.BOOKMARKS\u URI不再存在?,android,android-contentprovider,browser-history,Android,Android Contentprovider,Browser History,我正在尝试为AOSP浏览器的历史记录提供程序添加内容观察员,即使用Uri Browser.BOOKMARKS\u Uri。如果我附加了一个观察者,onChangeboolean会在我运行三星GT-S7562的IC上调用,我运行三星GT-I8262或HTC Desire X的JB上调用,但在我朋友运行三星SM-G7102的Android 4.3上,我没有收到任何AOSP浏览器提供商的通知。然而,对于谷歌Chrome的提供商,即居住在content://com.android.chrome.brow

我正在尝试为AOSP浏览器的历史记录提供程序添加内容观察员,即使用Uri Browser.BOOKMARKS\u Uri。如果我附加了一个观察者,onChangeboolean会在我运行三星GT-S7562的IC上调用,我运行三星GT-I8262或HTC Desire X的JB上调用,但在我朋友运行三星SM-G7102的Android 4.3上,我没有收到任何AOSP浏览器提供商的通知。然而,对于谷歌Chrome的提供商,即居住在content://com.android.chrome.browser/bookmarks,我收到所有android版本更改的通知。另外,如果我查询AOSP浏览器数据库并扫描条目,它只返回那些在Chrome中打开的条目,我的意思是它在Browser.BOOKMARKS\u URI提供程序中返回Chrome的历史记录

下面是我测试的示例服务,仅供参考,实际上并不需要它。请不要介意,但我认为上面的内容已经非常清楚了:

package vpz.hp;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class Watcher extends Service {
    private Provider Browser;
    private Provider Chrome;
    @Override public IBinder onBind(Intent intent) {
        return null;
    }
    @Override public void onDestroy() {
        if (this.Browser != null)
            this.Browser.Stop();
        if (this.Chrome != null)
            this.Chrome.Stop();
        super.onDestroy();
    }
    public final int onStartCommand(Intent Intention, int StartId, int Flags) {
        this.Browser = new Provider(super.getApplicationContext(), android.provider.Browser.BOOKMARKS_URI);
        this.Browser.Start();
        if (Search(getApplicationContext(), "com.android.chrome")) {
            this.Chrome = new Provider(super.getApplicationContext(), Uri.parse("content://com.android.chrome.browser/bookmarks"));
            this.Chrome.Start();
        }
        return START_STICKY;
    }
    private static final boolean Search(Context Sender, String Package) {
        try {
            return Sender.getPackageManager().getPackageInfo(Package, PackageManager.GET_ACTIVITIES) != null;
        } catch (NameNotFoundException Error) {
            return false;
        }
    }
    private static class Provider extends ContentObserver {
        private Context Sender;
        private Uri URI;
        public Provider(Context Sender, Uri URI) {
            super(new Handler());
            this.Sender = Sender;
            this.URI = URI;
        }
        @Override public void onChange(boolean Self) {
            String Message = this.URI.toString() + " onChange(" + Self + ")";
            Toast.makeText(this.Sender, Message, Toast.LENGTH_SHORT).show();
            Log.e("VPZ", Message);
        }
        public final void Start() {
            this.Sender.getContentResolver().registerContentObserver(this.URI, true, this);
        }
        public final void Stop() {
            this.Sender.getContentResolver().unregisterContentObserver(this);
        }
    }
}
我已在清单中添加了以下权限:

<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
AOSP浏览器上的content observer是否已被弃用?

我认为三星正在使用不同的提供商/数据库来存储浏览器历史记录,而不是标准的android浏览器提供商。正如我所看到的,浏览器应用程序位于4.2.2+设备上的三星文件夹中,这意味着三星专用。这让我们不清楚更新版本中的浏览器不是AOSP源代码树中的浏览器。