Как изменить домашнюю страницу браузера Android по умолчанию в приложении? - PullRequest
3 голосов
/ 02 марта 2012

Возможно ли в моем приложении программно изменить URL-адрес домашней страницы браузера Android? Если так, как я могу сделать это?

Например, если вы запустите это популярное приложение с Android 2.3 (все, что я тестировал), оно изменит вашу домашнюю страницу на http://www.searchmobileonline.com - https://market.android.com/details?id=goldenshorestechnologies.brightestflashlight.free

Спасибо!

Ответы [ 6 ]

5 голосов
/ 13 марта 2012

Я сам не пробовал, но BrowserSettings имеет открытый интерфейс setHomePage:

public void setHomePage(Context context, String url) {
    Editor ed = PreferenceManager.
            getDefaultSharedPreferences(context).edit();
    ed.putString(PREF_HOMEPAGE, url);
    ed.commit();
    homeUrl = url;
}

Он используется в BrowserBookmarksPage так:

BrowserSettings.getInstance().setHomePage(this, [URL]);

Но этот класс BrowserSettings толькодоступны из этого пакета.Так что, может быть, получить доступ к общим настройкам проще ...?

БОЛЬШЕ ...

На самом деле не для того, чтобы давать урок.Это может быть возможно, возможно, с помощью некоторого нативного кода, обращающегося к файлу XML, с настройками для браузера или другими способами, подобными этим, но ...

  • Независимо от того, что вы делаете, это будетидти вокруг безопасности на месте.Ваше приложение не должно быть в состоянии изменить домашнюю страницу браузера (или это было бы в документации)
  • Даже если есть возможность найти способ сделать это (через NDK или поиск недокументированных интерфейсов), оноСкорее всего, в какой-то момент перестанет работать с каким-то новым выпуском Android, что, вероятно, не то, что вам нужно.
  • Я понимаю, что некоторые приложения уже делают это, и ИМХО, это плохо.Это не значит, что ваше приложение должно делать то же самое и расстраивать больше потенциальных пользователей.
3 голосов
/ 21 февраля 2013

НЕТ СПОСОБА изменить URL-адрес домашней страницы браузера.

com.android.browser открывает / создает предпочтение с помощью MODE_PRIVATE. Таким образом, атрибуты файлов стали -rw-rw---- Кроме того, у menifest браузерного приложения нет атрибута sharedUserId.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.browser">

Приложение не предоставляет возможность поделиться файлом настроек приложения.

1 голос
/ 13 марта 2012

Я предполагаю, что разработчик приложения не написал это в своем коде, чтобы сделать это.Я думаю, что один из 11 рекламных SDK, которые он имеет в своем приложении, вызывает его.

У него

adserver.adview
adwhirl
amobee.onlinehapi
apperhand
google
inmobi.androidsdk
jumptap.adtag
mdotm.android.ads
millenialmedia.android
mobclix.android.sdk
zestadz.android

как примечание стороны, это смешно.

1 голос
/ 13 марта 2012

У меня есть мнение: Может быть, вы можете прочитать исходный код браузера и найти код, подобный этому:

SharedPreferences prefs = mContext.getSharedPreferences(RECOVERY_PREFERENCES, Context.MODE_PRIVATE);

и получите SharedPreferences браузера, затем найдите место для установки домашней страницы, измените его. Это возможно?

1 голос
/ 02 марта 2012

Это не может быть выполнено программно из вашего приложения.

Редактировать: Я скачал предоставленное вами приложение, и оно, похоже, выполняет то, что вы ищете. Как именно это было сделано, я понятия не имею. Я не могу найти в Интернете ничего о том, как это сделать. Мне интересно посмотреть, есть ли у кого-нибудь идеи о том, как они этого добились.

0 голосов
/ 27 сентября 2013

Я создал приложение под названием «Моя домашняя страница» (https://play.google.com/store/apps/details?id=com.aac.myhomepage)), где мне нужно было выполнить эту конкретную задачу. Я искал везде, где это было возможно, и не мог найти способ сделать это, поэтому я использовал два обходных пути, которые действительноНа мой взгляд, это не слишком удачные варианты.

1) Я предлагаю корневую опцию для тех, у кого есть рутированные устройства, где я просто получаю доступ к XML-файлу SharedPreferences из браузера и, используя регулярные выражения, меняю значениеДомашняя страница с нужной.

2) Скопируйте URL-адрес в буфер обмена и сообщите пользователю, как выполнить изменение домашней страницы по умолчанию.

Обратите внимание, что я не использовал корневой доступ безразрешение пользователя, и я не изменил домашнюю страницу без разрешения пользователя.Это цель приложения, и домашняя страница не изменяется без явного указания пользователем.

Недавно я заметил, что рекламные SDK делают это, но что-то говорит мне, что они этого не делают внадлежащим образом, и у меня нет никакого интереса я

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...