из результата поиска, похоже, проблема в этом:
SQLiteDatabase database = SQLiteDatabase.openDatabase("/data/data/com.android.browser/databases/browser.db", null, 0);
, так что это заставляет меня задуматься о правах доступа к файлам, так как сразу, когда я начал пытаться отлаживать что-то на моем реальном телефоне, я заметил, что папка / data была недоступна в файловом браузере, и выясняется, что если телефон не рутирован нормальный. давайте сделаем еще один шаг, я думаю, что программы также не имеют доступа ни к чему в папке / data, за исключением одного каталога, предназначенного для собственных целей. так что если ваш пакет не называется com.android.browser, он, скорее всего, не сможет прочитать эту папку, и, следовательно, попытка открыть файлы в ней не удастся. также не совсем уверен, применимо ли это здесь, но я также сталкивался со случаями, когда он терпит неудачу, когда вы используете абсолютный путь, но работает, когда вы используете относительный путь к тому же местоположению. так что для этого я бы сказал, используя
SQLiteDatabase database = SQLiteDatabase.openDatabase("browser.db", null, 0);
поэтому, если ваш пакет называется com.android.browser, мое предложение должно поставить его в то же место. если это не так, вполне вероятно, что у него нет прав доступа к файлам этого другого приложения. Я думаю, что можно получить разрешение, но вы должны сделать что-то для обеих программ, чтобы они могли обмениваться файлами. Я где-то читал, что Android обычно запускает каждое приложение в отдельном пространстве, и он говорит, что он использует отдельные учетные записи Linux для каждой, то есть для этого и создан Android OS.
так что, если вы пытаетесь редактировать закладки во встроенном браузере, я не думаю, что вы можете изменить его базу данных напрямую, поскольку вы не можете изменить эту программу, чтобы сообщить ей об обмене файлами с вашей программой; но вы можете отправить намерения в приложение и заставить его выполнять их таким образом.