Я на 100% уверен, что проблема в вашем телефоне, а не в вашем коде.
У моего телефона не было этой проблемы, и я смог воспроизвести ее, изменив одну из баз данных SQLite, которые поставляются со Службами Google Play. Ниже я объясняю, как это произошло на моем телефоне, а также как проблема может быть решена в вашем телефоне.
Как воспроизвести ошибку на телефоне, у которого его нет
Во-первых, я удостоверился, что в настройках разработчика моего телефона для параметра root-доступа установлено значение «Только ADB» или «ADB и приложения». Затем я запустил adb root
и adb shell
, чтобы получить доступ к устройству с помощью командной строки`
Оказавшись внутри, я запустил su
, чтобы стать пользователем root.
Затем я пошел в каталог /data/data/com.google.android.gsf/databases
, где была база данных gservices.db, которую я хотел изменить.
Чтобы прочитать и записать базу данных, я запустил sqlite3 gservices.db
, и в этой базе данных есть таблица с именем overrides
. Чтобы просмотреть содержимое этой таблицы, я запустил команду SELECT * FROM overrides;
, обращая внимание на то, чтобы не забыть последнюю точку с запятой.
В моем случае таблица была полностью пуста, но я уверен, что в вашем телефоне что-то есть, потому что для воспроизведения ошибки на вашем телефоне я запустил эту команду (снова запомните точку с запятой):
INSERT INTO overrides VALUES ("finsky.launch_urls_enabled", "false");
Для выхода из sqlite3 я ввел .exit
, а затем перезагрузил свой телефон.
Результаты
После перезагрузки я попробовал ваш код и вуаля, он перешел на главную страницу Google Play вместо страницы приложения. Я даже зашел в пользовательские настройки Amaze File Manager , по которым вы можете оценить приложение, и результат тот же, он пошел на домашнюю страницу.
Как удалить ошибку (умозрительную)
Вы можете попробовать выполнить описанные выше шаги, заменив оператор SQLite INSERT
следующим:
UPDATE overrides SET value="false" WHERE name="finsky.launch_urls_enabled"