Intereting Posts
Как исправить URL-адрес поставщика контента, который не найден в поставщике контента Android? Пользовательский экран тускнеет с помощью диалога Виджет приложений onUpdate не вызывается, когда существует метод onReceive Как импортировать API Google в Android Studio PictureListener устарел и устарел, есть ли замена? Удаление файла из внутреннего хранилища ObjectAnimator со свойством scale делает bg black? Как безопасно сохранить токен доступа Oauth Access в Android Не перезагружать приложение при изменении ориентации Изменение кода версии в AndroidManifest не работает Ожидание асинхронного обратного вызова в Android IntentService OnActivityResult С launchMode = "singleTask"? RecyclerView аварийно завершает работу, когда «пересмотренные или присоединенные виды не могут быть переработаны» Как выйти из полноэкранного веб-приложения Отправка объекта из службы в действие (не может быть маршалирована без прав)

Предупреждение в Google Play Неправильная реализация биллинга Google Play inApp

Я получил только следующее письмо от Google Play

«Привет, разработчик Google Play,

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

Следующие шаги

Если вы используете IabHelper, начните использовать последний SDK. Если вы вручную вызываете службу биллинга в приложении, убедитесь, что вы вызываете Intent.setPackage («com.android.vending») по любым намерениям «com.android.vending.billing.InAppBillingService.BIND». Войдите в свою консоль разработчика и отправьте обновленную версию своего приложения. Вернитесь через пять часов – мы покажем предупреждение, если приложение не было обновлено правильно. '

Я не уверен, в чем проблема для этой проблемы. Может ли кто-нибудь сказать, где указать код? Это где-то в Java-классе или манифесте?

Solutions Collecting From Web of "Предупреждение в Google Play Неправильная реализация биллинга Google Play inApp"

Я получил такое же предупреждение несколько дней назад и уже установил пакет для намерения следующим образом:

Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND"); serviceIntent.setPackage("com.android.vending"); bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE); 

Проблема исчезла благодаря обновлению до последних версий сервисов Google Play и таргетинга на Lollipop (5.1) вместо KitKat (4.4) … если вы используете Google Play Apis, убедитесь, что вы обновили их до самых новых версий и, надеюсь, Это исправит это для вас тоже.

Мы также получили это предупреждение и проверили наши апки. Мы обнаружили, что старая версия Google-Play-Service.jar, похоже, использует намерение для «com.android.vending.billing.InAppBillingService.BIND», без настройки setPackage.

Мы также проверили последнюю версию Google-Play-Service.jar, и это было хорошо, поэтому я бы предложил проверить вашу библиотеку.

Найдите весь репозиторий кода для следующей инструкции кода.

 Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND"); 

Где бы вы ни использовали вышеуказанное намерение, не забудьте добавить этот код ниже serviceIntent.setPackage("com.android.vending");

В моей всей кодовой базе было два случая вышеупомянутого намерения: один из них был в java-файле IabHelper, если вы используете последнюю версию приложения для биллинга приложений, это заявление уже было добавлено. В другом случае я использовал это намерение, чтобы проверить, является ли InApp Billing Служба была доступна, я забыл добавить serviceIntent.setPackage("com.android.vending"); , Как только я понял это и обновил свое приложение в консоли разработчика, предупреждающее сообщение было удалено через несколько часов.

Вы должны обновить файлы IabHelper с помощью последнего SDK:

https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util

Когда вы перезаписываете старые файлы, Eclipse или Android Studio будут отображать ошибки, и вы должны их исправить, например, добавить try catch или добавить один параметр в функцию queryInventory.

Помните имя пакета обновления в новых файлах, если вы изменили его.

EDIT: Также мне нужно обновить google_play_services.jar lib, включенный в мой проект. После обновления это уведомление оповещения скрыто. Я использовал более старую библиотеку игр google. Теперь я использую версию rev 28.

Исправление будет в вашей Java. Найдите свою кодовую базу для намерения с действием "com.android.vending.billing.InAppBillingService.BIND" , либо переданным в конструктор, либо заданным через Intent.setAction() . Прежде чем вызвать bindService() с этим намерением, вы должны явно установить пакет через Intent.setPackage() .

Вот пример кода Google в качестве ссылки: https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util/IabHelper. Java # L296

Для решения этой проблемы есть три момента.

  1. Найти com.android.vending.billing.InAppBillingService.BIND в ваших кодах. Пусть каждое намерение для этого вызывает метод Intent.setPackage(“com.android.vending”).
  2. Обновите SDK IabHelper .
  3. Обновите проект библиотеки Google Play. Убедитесь, что все сделано правильно. Каждая проблема отменила эту проблему. Если проблема все еще существует, возможно, что-то не так с другими банками в вашем проекте.

Я получил такое же предупреждение. Я уже устанавливал пакет при привязке InAppBillingService, но обнаружил, что я проверяю, существует ли InAppBillingService, как это:

 boolean inAppBillingAvailable = !getPackageManager().queryIntentServices(new Intent("com.android.vending.billing.InAppBillingService.BIND"), 0).isEmpty(); 

Убедитесь, что вы также устанавливаете пакет здесь:

 boolean inAppBillingAvailable = !getPackageManager().queryIntentServices(new Intent("com.android.vending.billing.InAppBillingService.BIND").setPackage("com.android.vending"), 0).isEmpty(); 

Наконец, мне удалось это решить. Сначала я обновил IabHelper, но это не помогло. Затем я заметил, что скомпилировать компиляцию 'com.google.android.gms: play-services: 6.1.71' в build.gradle. Я изменил это на com.google.android.gms: play-services: 9.4.0. Это вызывало множество ошибок компиляции. Но вместо того, чтобы использовать 9.4.0 версию игровых сервисов, я использовал отдельные сервисы google версии 9.4.0. В моем случае это только com.google.android.gms: play-services-auth: 9.4.0 и com.google.android.gms: play-services-drive: 9.4.0. Это дает лишь несколько ошибок компиляции, которые я исправил в коде. Затем я нажал на игру Google как альфа, ждал 2 дня. Предупреждающее предупреждение не появилось для загруженной мной сборки.

Спасибо.

Изменить: я не думаю, что нам нужно изменить IabHelper.java, пока он устанавливает setPackage («com.android.vending»). Я вернул IabHelper.java и загрузил сборку только с 9.4.0 версиями игр-сервисов-дисков и play-services-auth изменений. Это не предупреждало.

Не тестировал это решение, но вы все еще можете попробовать: замените serviceIntent.setPackage("com.android.vending"); С serviceIntent.setPackage("com.android.vending.billing.InAppBillingService.BIND"); В https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util/IabHelper.java#L297 или где угодно КомплектPackage предмет. Приветствия.

ОБНОВЛЕНИЕ : просто обновите библиотеку Google Play Services, работая для меня. Приветствия.

У меня была эта проблема, и я не мог позволить себе обновить наш старый конвейер, основанный на eclipse. Поэтому я в основном декомпилировал библиотеку google play, исправил уязвимости в eb.java и dx.java, перекомпилировал эти два файла и поместил их в исходный JAR-файл. Это объясняется в моем блоге .

Все ответы верны. То, что я сделал, это обновления сервисов google play и помощника IAB, а вместо использования помощника IAB я применил метод, описанный в учебнике Google по покупке приложений, и он исправил уведомления.