Установите значение пакета установщика, возвращенное в getInstallerPackageName()

У меня есть приложение для Android, которое использует WebView, чтобы пользователи могли устанавливать приложения. Исторически сложилось так, что приложения, установленные с Android Market, имеют значение установщика «com.google.android.feedback». В Google Play это значение теперь «com.android.vending».

Это значение можно получить:

PackageManager pm = context.getPackageManager();
String installer = pm.getInstallerPackageName(pname);

Приложения, установленные моим WebView, имеют значение установщика, равное нулю. Как я могу установить собственное значение установщика, например com.mydomain.store?


person Rami    schedule 05.02.2012    source источник
comment
Интересная часть вопроса отсутствует? Зачем тебе это?   -  person Peterdk    schedule 25.12.2012


Ответы (2)


Вы можете попробовать использовать setInstallerPackageName.

Но вам нужно будет установить имя пакета установщика после того, как пакет будет установлен, и имя пакета установщика должно быть пустым/нулевым.

person Reed    schedule 05.02.2012
comment
Спасибо Jakar, оказалось, что эти функции доступны для API уровня 11+, а я использую API уровня 7. Поэтому я не смог его найти. Я также узнал, что приложение-установщик должно быть подписано тем же ключом, что и установленные приложения. - person Rami; 06.02.2012

Хотя это не дает строгого ответа на вопрос, как сделать это программно, также можно установить пакет поставщика через adb, не подписывая его одним и тем же ключом.

Здесь есть полное объяснение, но оно сводится к следующему:

Следующий прием adb задает поставщика установки отладочного приложения:

adb push app.apk /sdcard/app.apk
adb shell pm install -i "com.android.vending" -r /sdcard/app.apk
adb shell rm /sdcard/app.apk

Чтобы убедиться, что это сработало, перечислите пакеты с помощью диспетчера пакетов:

adb shell pm list packages -i [packagename]

Если все прошло хорошо, вы должны увидеть этот вывод:

package:[packagename]  installer=com.android.vending
person Paul Lammertsma    schedule 09.10.2014