Billing service unavailable on device как исправить ошибку

Протирать помог мне. Странная ошибка. .i1a { width: 336px; height: 280px; } ... Вопрос по теме: android, google-play, in-app-billing.

Ну, мы не можем вам помочь, не имея большой информации. Поэтому вместо этого я попытаюсь сделать контрольный список, если вы что-то упустили:

1) Вы тестируете на эмуляторе? Биллинговые службы должны тестироваться на устройствах, НО если вы
действительно нужно протестировать эмулятор, убедитесь, что в эмуляторе установлена ​​и настроена игра Google. Это очень важно!

2) Вы установили правильное разрешение в манифесте? (Com.android.vending.BILLING)

3) Если вы все еще тестируете приложение, получили ли вы лицензию тестового приложения из игрового магазина, импортировали lvl в свой sdk, настроили свою библиотеку проверки лицензий? (вы можете следовать здесь: настройка

4) В вашей активности onActivityResult вы правильно обработали результат деятельности? Как видно из примера из google, вы должны сделать это следующим образом:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);

// Pass on the activity result to the helper for handling
if (!inappBillingHelper.handleActivityResult(requestCode, resultCode, data)) {
    super.onActivityResult(requestCode, resultCode, data);
}
else {
    Log.i(TAG, "onActivityResult handled by IABUtil.");
}
}

Также может быть полезно больше информации, например, если вы тестируете эмулятор или устройство, имя устройства, версию Android и т.д.

I’m trying to use In-App billing:

mIabHelper = new IabHelper(this, BILLING_KEY);
        mIabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            @Override
            public void onIabSetupFinished(IabResult result) {
                if (!result.isSuccess()) {
                    Log.d(TAG, "Problem setting up In-app Billing: " + result);
                }
            }
        });

And getting the error:

Problem setting up In-app Billing: IabResult: Billing service unavailable on device. (response: 3:Billing Unavailable)

Why? Tried to clear cache of the Play Store, didn’t work for me.

asked Apr 8, 2013 at 21:38

artem's user avatar

1

Well we can’t help you without having much information.So instead I’ll try to do a checklist for you in case you missed something:

  1. Are you testing on an emulator?Billing services should be tested on devices,BUT if you
    really have to test on the emulator,make sure the emulator has google play installed and set up.This is very important!

  2. Did you set the correct permission in the manifest? (com.android.vending.BILLING)

  3. If you are still testing the app,did you get a test app licence from the playstore, imported the level in your SDK ,set up your licence verification library? (you can follow along here: setting up

  4. On your activity onActivityResult did you correctly handle the activity result?As seen on the example from google you should do it this way:


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
  Log.i(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);

  // Pass on the activity result to the helper for handling
  if (!inappBillingHelper.handleActivityResult(requestCode, resultCode, data)) {
    super.onActivityResult(requestCode, resultCode, data);
  }
  else {
    Log.i(TAG, "onActivityResult handled by IABUtil.");
  }
}

Also having more information could be useful, like if you are testing on the emulator or device, the device name, the android version etc…

Bruno Bieri's user avatar

Bruno Bieri

9,54311 gold badges61 silver badges89 bronze badges

answered Apr 11, 2013 at 11:22

sokie's user avatar

sokiesokie

1,88622 silver badges37 bronze badges

1

This error indicates that you’re connecting to the in-app billing service on your device, but that the service doesn’t support IAB version 3. It may be that your device’s version of Google Play only supports version 2 of IAB. What version of Google Play is running on your device?

Is your version of Google Play otherwise functional (e.g., can you open the Google Play store)? Sometimes, if the date on your device is off, or there is some other problem, Google Play itself can go South.

Finally, what’s in your logcat output? It would be easier to provide assistance if you provided more detail.

answered Apr 12, 2013 at 11:42

Carl's user avatar

CarlCarl

15.3k5 gold badges55 silver badges53 bronze badges

2

I got that error when I installed the App BEFORE I registered everything and set Google Play store up. Once I set the Google Play Store account up, the error went away.

answered Jul 21, 2013 at 13:10

Gene's user avatar

GeneGene

10.6k1 gold badge64 silver badges57 bronze badges

Wipe helped me. Strange error.

answered Apr 12, 2013 at 14:44

artem's user avatar

artemartem

16k34 gold badges112 silver badges184 bronze badges

3

The documentation for version 2.0 of the billing was actually more helpful than 3.0 for this one even though I’m using version 3.0 of the billing.

Here’s how 2.0 describes it Response Code 3:

Indicates that In-app Billing is not available because the API_VERSION
that you specified is not recognized by the Google Play application or
the user is ineligible for in-app billing
(for example, the user
resides in a country that prohibits in-app purchases).

For me I had to setup a test Google account on my phone first before testing. I forgot that step. Once I did that fixed it for me…

Look for Server Response Codes here:

http://developer.android.com/google/play/billing/v2/billing_reference.html

http://developer.android.com/google/play/billing/billing_reference.html

answered Jan 20, 2014 at 18:21

Nathan Prather's user avatar

Nathan PratherNathan Prather

2,0681 gold badge18 silver badges15 bronze badges

2

I found a problem to fix, try root with ur LuckyPatcher, open config Toggles -> Disable billing.

enter image description here

answered Jun 28, 2015 at 1:01

KingRider's user avatar

KingRiderKingRider

2,11025 silver badges23 bronze badges

Had the same problem.

My device was rooted and ROM’ed with an older version of Google Market which did not self-update.
You can verify your the Market/Play version by looking at it in the AppManager.

I actually decided to use another device, but I guess otherwise I would have to find a way to upgrade the Market/Play version.

answered Jul 2, 2013 at 10:07

Doigen's user avatar

DoigenDoigen

1892 silver badges6 bronze badges

I got this error from wiping the Google Play cache. You have to reopen the Google Play app and accept the terms before it is functional for IAB again.

answered Jul 9, 2014 at 15:02

Lee's user avatar

LeeLee

1,0282 gold badges11 silver badges18 bronze badges

This is because the account which is currently logged in the device is not registered in Google Developer Console.
TO resolve this problem,
1. Go to your Google Developer Consol
2. In Account Detail Tab, enter the email address(which is in device) in «Gmail accounts with testing access» and press the save button on the top.

Thats it.

answered Feb 22, 2014 at 14:16

Yasir Ali's user avatar

Yasir AliYasir Ali

1,7851 gold badge16 silver badges21 bronze badges

In my case I’ve set a different value for serviceIntent.setPackage(«com.android.vending»); from IabHelper. Make sure you leave it with this value

answered Jul 29, 2015 at 17:21

Alex's user avatar

AlexAlex

1911 silver badge10 bronze badges

I had that same error and then noticed my phone was in Airplane Mode! Once connectivity was restored, I was good to go.

answered Feb 7, 2016 at 1:02

Papasmile's user avatar

PapasmilePapasmile

6241 gold badge4 silver badges22 bronze badges

IabHelper.java

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

It is an error if it is not possible to specify correctly the action and packageName to IInAppBillingService.aidl.

answered Feb 8, 2016 at 10:59

Hashido Tomoya's user avatar

Have come up with the solution.

Try the below 3 steps:

  1. Clear the cache of GooglePlay app and Google Play services app.
  2. Remove IInAppBillingService.aidl file.
  3. Copy the above file again from sdk folder and paste it to the aidl folder in my app.

This problem usually occurs when we copy the aidl file from one project to another project.

answered May 22, 2016 at 14:10

Ankur Yadav's user avatar

Я использую код InApp V3 для покупок в моем приложении, я получаю эту ошибку BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE и error value :3, когда учетная запись Google недоступна на устройстве. Я хочу знать, есть ли другие возможности получить эту ошибку, потому что, когда я получаю эту ошибку, мне нужно показать пользователю всплывающее окно с некоторыми данными. Если это вызвано тем, что учетная запись Google недоступна на устройстве, я покажу диалоговое окно со связанным текстом. это код, который я использую

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
    public void onIabSetupFinished(IabResult result) {              
        if (!result.isSuccess()) {
                // error here               
            return;
        }
    }
});

Это ошибка Error checking for billing v3 support. (response: 3:Billing Unavailable)

8 ответов

Лучший ответ

Как мы видим непосредственно в код настройки IabHElper образца, предоставленного Google, ошибка означает:

«Платежная служба недоступна на устройстве».

Как вы можете прочитать здесь, эта ошибка означает

Billing API version is not supported for the type requested

Это Справочник по биллингу в приложении (IAB версии 3), поэтому ошибка означает, что IAB v3 не установлен на устройстве.

Фактически это означает, что у пользователя есть учетная запись Google и, вероятно, также служба биллинга в приложении, но у нее нет последней версии. Это происходит на старых устройствах, где пользователь никогда ничего не обновляет. Раньше это были устройства, на которых вы могли видеть старое приложение Market вместо приложения Play.

Таким образом, ошибка, которую вы должны показать пользователю, и тест, который вы должны выполнить, заключается не в том, есть ли на устройстве учетная запись Google, а в том, что на нем установлены и должным образом обновлены службы Google Play.

Если вы ищете код во всех библиотечных SDK и вспомогательных классах, предоставляемых Google, единственное место, где мы можем найти это именно в вызываемой вами функции: startSetup из IabHelper класс

Intent serviceIntent = new Intent(
                "com.android.vending.billing.InAppBillingService.BIND");
        if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0)
                .isEmpty()) {
            // service available to handle that Intent
            mContext.bindService(serviceIntent, mServiceConn,
                    Context.BIND_AUTO_CREATE);
        } else {
            // no service available to handle that Intent
            mServiceConn=null;
            if (listener != null) {
                listener.onIabSetupFinished(new IabResult(
                        BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE,
                        "Billing service unavailable on device."));
            }
        }

Это означает, что приложению не удалось подключиться к службе на устройстве, поскольку диспетчер пакетов даже не знает об этом . Это единственный вариант, который может вызвать эту ошибку. И что это значит, что он не смог подключиться к услуге? Это означает одно из следующих:

  • На устройстве не установлена ​​служба.
  • У него старая версия, поскольку мы знаем, что в последних версиях игрового магазина используется IAB v3.

Итак, ваша ошибка может означать только одно из них, что для вас означает, что вы должны показать пользователю сообщение типа «У вас не установлены службы Google Play или вам необходимо обновить их». И нет других возможностей получить эту ошибку.

Но, если вы хотите, чтобы пользователям было проще, вы можете сказать, что им нужно обновить приложение Google Play до последней версии . И это заставит все работать как шарм.


38

Null
16 Апр 2021 в 11:42

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


17

pareshgoel
30 Июл 2014 в 14:22

Войдите в Play Маркет с любой учетной записью.

После входа в систему биллинг работает даже на Android Studio Emulator.


8

Babken Vardanyan
7 Апр 2018 в 09:58

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

Таким образом, любой пользователь из страны, где Google Play не поддерживает покупку в приложении, получит BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE.

Это будет меньше шансов, что у пользователя не установлена ​​обновленная служба Google Play на телефоне, поэтому не беспокойтесь об этом случае.


7

N Sharma
22 Янв 2014 в 10:52

Попробуйте эти хаки

Удалите кеш, данные и обновления для приложения для воспроизведения, перезапустите приложение для воспроизведения снова, оно должно работать! или попробуйте установить последние обновления (если они исправлены)

FYI :

Только имейте в виду:

  • IABv3 встроен в сервисы Google Play, поэтому требуется обновление до APK Play Services.

  • Версия V2 была встроена в сам клиент магазина Play. Проблема с кешем / лицензионным соглашением не имеет прямого отношения к IAB, это связано с настройкой Play Сервисы (и, надеюсь, не нужны большинству пользователей, часть кеша в любом случае).

  • Обидно быть в этот переходный период, когда у Play Services есть быть обновленным, прежде чем ваше приложение сможет использовать это в своих интересах, но я думаю большинство людей согласятся, что это лучше, чем ждать ОС Обновить.’

См. Эту ссылку: отчет об ошибке, сообщение в Google+


2

LOG_TAG
21 Янв 2014 в 12:20

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


1

User2364902
7 Дек 2016 в 07:21

Для тех, кто все еще сталкивается с этой проблемой, в большинстве случаев iab не поддерживается в вашей стране, как сказал Уильямс. Вы можете использовать VPN, чтобы заставить его работать.


1

Drilon Blakqori
4 Апр 2017 в 00:33

Если вы находитесь в Тонге (как я) или в любой другой стране, где вы не можете покупать приложения в Google Play, вы должны использовать VPN для проверки биллинга. В противном случае вы получите эту ошибку.


0

John T
1 Июл 2019 в 08:44

I’m trying to use In-App billing:

mIabHelper = new IabHelper(this, BILLING_KEY);
        mIabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            @Override
            public void onIabSetupFinished(IabResult result) {
                if (!result.isSuccess()) {
                    Log.d(TAG, "Problem setting up In-app Billing: " + result);
                }
            }
        });

And getting the error:

Problem setting up In-app Billing: IabResult: Billing service unavailable on device. (response: 3:Billing Unavailable)

Why? Tried to clear cache of the Play Store, didn’t work for me.

asked Apr 8, 2013 at 21:38

artem's user avatar

1

Well we can’t help you without having much information.So instead I’ll try to do a checklist for you in case you missed something:

  1. Are you testing on an emulator?Billing services should be tested on devices,BUT if you
    really have to test on the emulator,make sure the emulator has google play installed and set up.This is very important!

  2. Did you set the correct permission in the manifest? (com.android.vending.BILLING)

  3. If you are still testing the app,did you get a test app licence from the playstore, imported the level in your SDK ,set up your licence verification library? (you can follow along here: setting up

  4. On your activity onActivityResult did you correctly handle the activity result?As seen on the example from google you should do it this way:


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
  Log.i(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);

  // Pass on the activity result to the helper for handling
  if (!inappBillingHelper.handleActivityResult(requestCode, resultCode, data)) {
    super.onActivityResult(requestCode, resultCode, data);
  }
  else {
    Log.i(TAG, "onActivityResult handled by IABUtil.");
  }
}

Also having more information could be useful, like if you are testing on the emulator or device, the device name, the android version etc…

Bruno Bieri's user avatar

Bruno Bieri

9,54311 gold badges61 silver badges89 bronze badges

answered Apr 11, 2013 at 11:22

sokie's user avatar

sokiesokie

1,88622 silver badges37 bronze badges

1

This error indicates that you’re connecting to the in-app billing service on your device, but that the service doesn’t support IAB version 3. It may be that your device’s version of Google Play only supports version 2 of IAB. What version of Google Play is running on your device?

Is your version of Google Play otherwise functional (e.g., can you open the Google Play store)? Sometimes, if the date on your device is off, or there is some other problem, Google Play itself can go South.

Finally, what’s in your logcat output? It would be easier to provide assistance if you provided more detail.

answered Apr 12, 2013 at 11:42

Carl's user avatar

CarlCarl

15.3k5 gold badges55 silver badges53 bronze badges

2

I got that error when I installed the App BEFORE I registered everything and set Google Play store up. Once I set the Google Play Store account up, the error went away.

answered Jul 21, 2013 at 13:10

Gene's user avatar

GeneGene

10.6k1 gold badge64 silver badges57 bronze badges

Wipe helped me. Strange error.

answered Apr 12, 2013 at 14:44

artem's user avatar

artemartem

16k34 gold badges112 silver badges184 bronze badges

3

The documentation for version 2.0 of the billing was actually more helpful than 3.0 for this one even though I’m using version 3.0 of the billing.

Here’s how 2.0 describes it Response Code 3:

Indicates that In-app Billing is not available because the API_VERSION
that you specified is not recognized by the Google Play application or
the user is ineligible for in-app billing
(for example, the user
resides in a country that prohibits in-app purchases).

For me I had to setup a test Google account on my phone first before testing. I forgot that step. Once I did that fixed it for me…

Look for Server Response Codes here:

http://developer.android.com/google/play/billing/v2/billing_reference.html

http://developer.android.com/google/play/billing/billing_reference.html

answered Jan 20, 2014 at 18:21

Nathan Prather's user avatar

Nathan PratherNathan Prather

2,0681 gold badge18 silver badges15 bronze badges

2

I found a problem to fix, try root with ur LuckyPatcher, open config Toggles -> Disable billing.

enter image description here

answered Jun 28, 2015 at 1:01

KingRider's user avatar

KingRiderKingRider

2,11025 silver badges23 bronze badges

Had the same problem.

My device was rooted and ROM’ed with an older version of Google Market which did not self-update.
You can verify your the Market/Play version by looking at it in the AppManager.

I actually decided to use another device, but I guess otherwise I would have to find a way to upgrade the Market/Play version.

answered Jul 2, 2013 at 10:07

Doigen's user avatar

DoigenDoigen

1892 silver badges6 bronze badges

I got this error from wiping the Google Play cache. You have to reopen the Google Play app and accept the terms before it is functional for IAB again.

answered Jul 9, 2014 at 15:02

Lee's user avatar

LeeLee

1,0282 gold badges11 silver badges18 bronze badges

This is because the account which is currently logged in the device is not registered in Google Developer Console.
TO resolve this problem,
1. Go to your Google Developer Consol
2. In Account Detail Tab, enter the email address(which is in device) in «Gmail accounts with testing access» and press the save button on the top.

Thats it.

answered Feb 22, 2014 at 14:16

Yasir Ali's user avatar

Yasir AliYasir Ali

1,7851 gold badge16 silver badges21 bronze badges

In my case I’ve set a different value for serviceIntent.setPackage(«com.android.vending»); from IabHelper. Make sure you leave it with this value

answered Jul 29, 2015 at 17:21

Alex's user avatar

AlexAlex

1911 silver badge10 bronze badges

I had that same error and then noticed my phone was in Airplane Mode! Once connectivity was restored, I was good to go.

answered Feb 7, 2016 at 1:02

Papasmile's user avatar

PapasmilePapasmile

6241 gold badge4 silver badges22 bronze badges

IabHelper.java

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

It is an error if it is not possible to specify correctly the action and packageName to IInAppBillingService.aidl.

answered Feb 8, 2016 at 10:59

Hashido Tomoya's user avatar

Have come up with the solution.

Try the below 3 steps:

  1. Clear the cache of GooglePlay app and Google Play services app.
  2. Remove IInAppBillingService.aidl file.
  3. Copy the above file again from sdk folder and paste it to the aidl folder in my app.

This problem usually occurs when we copy the aidl file from one project to another project.

answered May 22, 2016 at 14:10

Ankur Yadav's user avatar

I’m trying to use In-App billing:

mIabHelper = new IabHelper(this, BILLING_KEY);
        mIabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            @Override
            public void onIabSetupFinished(IabResult result) {
                if (!result.isSuccess()) {
                    Log.d(TAG, "Problem setting up In-app Billing: " + result);
                }
            }
        });

And getting the error:

Problem setting up In-app Billing: IabResult: Billing service unavailable on device. (response: 3:Billing Unavailable)

Why? Tried to clear cache of the Play Store, didn’t work for me.

asked Apr 8, 2013 at 21:38

artem's user avatar

1

Well we can’t help you without having much information.So instead I’ll try to do a checklist for you in case you missed something:

  1. Are you testing on an emulator?Billing services should be tested on devices,BUT if you
    really have to test on the emulator,make sure the emulator has google play installed and set up.This is very important!

  2. Did you set the correct permission in the manifest? (com.android.vending.BILLING)

  3. If you are still testing the app,did you get a test app licence from the playstore, imported the level in your SDK ,set up your licence verification library? (you can follow along here: setting up

  4. On your activity onActivityResult did you correctly handle the activity result?As seen on the example from google you should do it this way:


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
  Log.i(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);

  // Pass on the activity result to the helper for handling
  if (!inappBillingHelper.handleActivityResult(requestCode, resultCode, data)) {
    super.onActivityResult(requestCode, resultCode, data);
  }
  else {
    Log.i(TAG, "onActivityResult handled by IABUtil.");
  }
}

Also having more information could be useful, like if you are testing on the emulator or device, the device name, the android version etc…

Bruno Bieri's user avatar

Bruno Bieri

9,54311 gold badges61 silver badges89 bronze badges

answered Apr 11, 2013 at 11:22

sokie's user avatar

sokiesokie

1,88622 silver badges37 bronze badges

1

This error indicates that you’re connecting to the in-app billing service on your device, but that the service doesn’t support IAB version 3. It may be that your device’s version of Google Play only supports version 2 of IAB. What version of Google Play is running on your device?

Is your version of Google Play otherwise functional (e.g., can you open the Google Play store)? Sometimes, if the date on your device is off, or there is some other problem, Google Play itself can go South.

Finally, what’s in your logcat output? It would be easier to provide assistance if you provided more detail.

answered Apr 12, 2013 at 11:42

Carl's user avatar

CarlCarl

15.3k5 gold badges55 silver badges53 bronze badges

2

I got that error when I installed the App BEFORE I registered everything and set Google Play store up. Once I set the Google Play Store account up, the error went away.

answered Jul 21, 2013 at 13:10

Gene's user avatar

GeneGene

10.6k1 gold badge64 silver badges57 bronze badges

Wipe helped me. Strange error.

answered Apr 12, 2013 at 14:44

artem's user avatar

artemartem

16k34 gold badges112 silver badges184 bronze badges

3

The documentation for version 2.0 of the billing was actually more helpful than 3.0 for this one even though I’m using version 3.0 of the billing.

Here’s how 2.0 describes it Response Code 3:

Indicates that In-app Billing is not available because the API_VERSION
that you specified is not recognized by the Google Play application or
the user is ineligible for in-app billing
(for example, the user
resides in a country that prohibits in-app purchases).

For me I had to setup a test Google account on my phone first before testing. I forgot that step. Once I did that fixed it for me…

Look for Server Response Codes here:

http://developer.android.com/google/play/billing/v2/billing_reference.html

http://developer.android.com/google/play/billing/billing_reference.html

answered Jan 20, 2014 at 18:21

Nathan Prather's user avatar

Nathan PratherNathan Prather

2,0681 gold badge18 silver badges15 bronze badges

2

I found a problem to fix, try root with ur LuckyPatcher, open config Toggles -> Disable billing.

enter image description here

answered Jun 28, 2015 at 1:01

KingRider's user avatar

KingRiderKingRider

2,11025 silver badges23 bronze badges

Had the same problem.

My device was rooted and ROM’ed with an older version of Google Market which did not self-update.
You can verify your the Market/Play version by looking at it in the AppManager.

I actually decided to use another device, but I guess otherwise I would have to find a way to upgrade the Market/Play version.

answered Jul 2, 2013 at 10:07

Doigen's user avatar

DoigenDoigen

1892 silver badges6 bronze badges

I got this error from wiping the Google Play cache. You have to reopen the Google Play app and accept the terms before it is functional for IAB again.

answered Jul 9, 2014 at 15:02

Lee's user avatar

LeeLee

1,0282 gold badges11 silver badges18 bronze badges

This is because the account which is currently logged in the device is not registered in Google Developer Console.
TO resolve this problem,
1. Go to your Google Developer Consol
2. In Account Detail Tab, enter the email address(which is in device) in «Gmail accounts with testing access» and press the save button on the top.

Thats it.

answered Feb 22, 2014 at 14:16

Yasir Ali's user avatar

Yasir AliYasir Ali

1,7851 gold badge16 silver badges21 bronze badges

In my case I’ve set a different value for serviceIntent.setPackage(«com.android.vending»); from IabHelper. Make sure you leave it with this value

answered Jul 29, 2015 at 17:21

Alex's user avatar

AlexAlex

1911 silver badge10 bronze badges

I had that same error and then noticed my phone was in Airplane Mode! Once connectivity was restored, I was good to go.

answered Feb 7, 2016 at 1:02

Papasmile's user avatar

PapasmilePapasmile

6241 gold badge4 silver badges22 bronze badges

IabHelper.java

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

It is an error if it is not possible to specify correctly the action and packageName to IInAppBillingService.aidl.

answered Feb 8, 2016 at 10:59

Hashido Tomoya's user avatar

Have come up with the solution.

Try the below 3 steps:

  1. Clear the cache of GooglePlay app and Google Play services app.
  2. Remove IInAppBillingService.aidl file.
  3. Copy the above file again from sdk folder and paste it to the aidl folder in my app.

This problem usually occurs when we copy the aidl file from one project to another project.

answered May 22, 2016 at 14:10

Ankur Yadav's user avatar

Я использую код InApp V3 для покупок в приложении в моем приложении, я получаю эту ошибку BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE и error value :3 когда учетная запись Google недоступна в устройстве. Я хочу знать, есть ли другие возможности получить эту ошибку, потому что, когда я получаю эту ошибку, мне нужно показать всплывающее окно пользователю с некоторыми данными. Если это вызывает из-за учетной записи Google, недоступной на устройстве, я покажу Диалог со связанным текстом. это код, который я использую

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
    public void onIabSetupFinished(IabResult result) {              
        if (!result.isSuccess()) {
                // error here               
            return;
        }
    }
});

это ошибка Error checking for billing v3 support. (response: 3:Billing Unavailable)

7 ответов


как мы можем видеть непосредственно в код установки из iabhelper образца, предоставленного google, ошибка означает:

» служба выставления счетов недоступна на устройстве.»

как вы можете прочитать здесь, что значит

Billing API version is not supported for the type requested

это Справочник по выставлению счетов в приложении (IAB версии 3), поэтому ошибка означает, что IAB v3 не установлен на устройстве.

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

таким образом, ошибка, которую вы должны показать пользователю, и тест, который вы должны выполнить, не является, если устройство имеет Google acount, но если у него установлены службы google play и правильно усовершенствованный.

обновление:

если вы ищете код во всех библиотеках SDK и вспомогательных классах, предоставляемых google, единственное место, где мы можем найти это именно в функции, которую вы вызываете:startSetup на IabHelper класс

Intent serviceIntent = new Intent(
                "com.android.vending.billing.InAppBillingService.BIND");
        if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0)
                .isEmpty()) {
            // service available to handle that Intent
            mContext.bindService(serviceIntent, mServiceConn,
                    Context.BIND_AUTO_CREATE);
        } else {
            // no service available to handle that Intent
            mServiceConn=null;
            if (listener != null) {
                listener.onIabSetupFinished(new IabResult(
                        BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE,
                        "Billing service unavailable on device."));
            }
        }

Это означает, что приложение не может подключиться к службе в устройства, так как менеджер пакетов даже не знаю, что это. Это единственный вариант, который может вызвать эту ошибку. И что это значит? не удалось подключиться к сервису? Это означает одно из следующих:

  • на устройстве не установлена служба.
  • он имеет старую версию, так как мы знаем, что последние версии play store, использует IAB v3.

таким образом, ваша ошибка может означать только одно из этого, что для вас означает, что вы должны показать mesagge пользователю, как «у вас нет Google play services установлен, или вы должны обновить его». И нет других возможностей или получения эта ошибка.

но, если вы хотите сделать его проще для пользователей, вы можете сказать, что им нужно обновить приложение Google Play до последней версии. И тогда все будет работать как по маслу.


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


в основном возможность вашего вопроса BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE Это то, что в некоторых странах все еще в покупке приложения не разрешено, как Сербия и многие страны.

Так любой пользователь из страны, где Google Play не поддерживает в покупке приложения, то вы получите BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE.

это было бы меньше шансов, что пользователь не обновил сервис Google Play, установленный на телефоне, поэтому не беспокойтесь об этом случае.


попробуйте это хаки

удалить кэш, данные и обновления для приложения play, перезапустить приложение play снова он должен работать! или попробуйте с последними обновлениями (если он исправлен)

FYI:

Только имейте в виду:

  • IABv3 встроен в сервисы Google Play, поэтому требуется обновление
    игра услуги apk.

  • V2 был встроен в сам клиент Play store. Проблема кэша/EULA
    не в частности, связанные с IAB, это связано с настройкой игры
    Сервисы (и, надеюсь, не нужны для большинства пользователей, часть кэша
    в любом случае.)

  • это облом, чтобы быть в этот переходный период, когда Play Services имеет
    чтобы быть обновленным, прежде чем ваше приложение сможет воспользоваться этим, но я думаю
    большинство людей согласятся, что это лучше, чем ждать ОС
    модернизировать.’

посмотреть этот код: сообщить об ошибке, G+ пост


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


войдите в Play Store с любой учетной записью.

после входа в биллинг работает даже на эмуляторе Android Studio.

1

автор: Babken Vardanyan


для тех, кто все еще сталкивается с этой проблемой, в большинстве случаев iab не поддерживается в вашей стране, как сказал Уильямс. Вы можете использовать VPN, чтобы заставить его работать.


Данная статья будет полезна системным администраторам, планирующим работать с сетевым оборудованием Huawei, а так же ИТ-специалистам, перед которыми стоит задача разработки собственных решений на базе стандартных платформ. В ней будет приведено подробное описание настройки устройства посредством командной строки (CLI).

Я получил для тестирования и изучения продукт компании Huawei Enterprise – Huawei AR169W-P-M9. Как следует из описания на сайте производителя – это устройство объединяет в себе полный набор услуг, в том числе маршрутизации, коммутации, безопасности и беспроводного доступа, а также содержит в себе открытую сервисную платформу (OSP, которая по сути является x86 компьютером), которая может обеспечить практически любой функционал, доступный на x86-платформе.

Если все упростить – то это полноценный роутер корпоративного уровня с интегрированным гипервизором на базе x86 архитектуры и все это размером с толстую книгу. Рассмотрим устройство поближе. Основные характеристики с сайта производителя ниже.

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

Рис.1

Техническая спецификация

Характеристики маршрутизатора

Базовый функционал ARP, DHCP, NAT, and Sub interface management
WLAN (AP – точка доступа FAT) AP management, WLAN QoS, WLAN security, WLAN radio management, and WLAN user management (Only WLAN models support WLAN AP features)
WLAN (AC – контроллер точек доступа) AP management (AC discovery/AP access/AP management), CAPWAP, WLAN user management, WLAN radio management (802.11a/b/g/n), WLAN QoS (WMM), and WLAN security (WEP/WPA/WPA2/Key management)
LAN IEEE 802.1P, IEEE 802.1Q, IEEE 802.3, VLAN management, MAC address management, MSTP, etc.
Ipv4 Unicast Routing Routing policy, static route, RIP, OSPF, IS-IS, and BGP
Ipv6 Unicast Routing Routing policy, static route, RIPng, OSPFv3, IS-Isv6, and BGP4
Multicast IGMP v1/v2/v3, PIM SM, PIM DM, and MSDP
VPN IPSec VPN, GRE VPN, DSVPN, L2TP VPN, and Smart VPN
QoS Diffserv mode, Priority mapping, traffic policing (CAR), traffic shaping, congestion avoidance (based on IP precedence/DSCP WRED), congestion management (LAN interface: SP/WRR/SP WRR; WAN interface: PQ/CBWFQ), MQC (traffic classification, traffic behavior, and traffic policy), Hierarchical QoS, and Smart Application Control (SAC)
Security ACL, firewall, 802.1x authentication, AAA authentication, RADIUS authentication, HWTACACS authentication, broadcast storm suppression, ARP security, ICMP attack defense, URPF, CPCAR, blacklist, IP source tracing, and PKI
Management and Maintenance Upgrade management, device management, web-based GUI, GTL, SNMP v1/v2c/v3, RMON, NTP, CWMP, Auto-Config, site deployment using USB disk, and CLI

Следующие операционные системы могут быть установлены на сервисный модуль OSP:

• Windows Server 2003 32bit,
• Windows Server 2008 R1 32bit,
• Windows Server 2008 R2 64bit,
• Windows 7 32bit sp1,
• Windows 8.x
• Red Hat Enterprise 6.5,
• Red Hat Enterprise 7.0,
• SUSE Enterprise 11 SP1,
• Fedora Core 20,
• Debian Wheezy.
После более детального изучения устройства, я набросал следующую структурную схему устройства:

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

Рис.2

Как можно увидеть, устройство условно состоит из двух частей:

В своей практике я часто имею дело с сетевым оборудованием Huawei, считаю, что достаточно хорошо знаю его архитектуру, операционную систему VRP и CLI. Но когда я узнал о существовании такого «гибрида», мне стало интересно – на каком уровне в нем происходит интеграция x86 и VRP? Как будет выглядеть с точки зрения роутера гипервизор? И как будут выглядеть сетевые ресурсы роутера с точки зрения установленной на сервисную платформу x86-ой операционной системы? И интерес, в первую очередь, свяазан с открывающимися вариантами решений различных типовых задач – ведь по сути в одной коробке уже есть почти все, вот к примеру варианты использования:

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

Рис. 3

На рисунке 3 – базовая схема подключения дополнительного офиса к главному. Устройство в дополнительном офисе решает задачу выхода в Интернет, раздачу Wi-Fi, предоставление IP-телефонии, коммутацию четырех устройств, а также до двух серверов для задач, которые нужно решать локально.
Второй вариант:

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

Рис. 4

Решение для общественного транспорта. Устройство будет раздавать интернет пассажирам, которое оно будет получать посредством 3G/4G, а также транслировать рекламу посредством HDMI-интерфейса и подключенному к нему монитору и колонке. Или, например, определяя местоположение по GPS, проводить экскурсию пассажирам. Для этого, конечно же, на гостевой ОС должно быть запущено соответствующее приложение. Стоит так же заметить, что для данного применения уместнее использовать промышленный вариант серии AR 500, который выполнен в специальном корпусе, защищающем устройство от тряски.

Думаю, что вариантов применения можно придумать множество, эти варианты первые, что пришли мне в голову.

Первичные настройки роутера.
Пароль по умолчанию на консоль (параметры консоли стандартные, как у Cisco: 9600baud, без контроля четности):

Username: admin
Password: [email protected]
(в некоторых ранних версиях VRP пароль может быть [email protected], но в свежих версиях – такой как указано выше).

1) Прописываем IP адрес для VlanInterface1, в котором по умолчанию находятся порты LAN-свича GE0-GE4, а также маршрут по умолчанию:

<Huawei>system-view
Enter system view, return user view with Ctrl Z.
[Huawei]sysname AR169
[AR169]interface Vlanif1
[AR169-Vlanif1]ip address 172.31.31.77 255.255.255.0
[AR169-Vlanif1]quit
[AR169]ip route-static 0.0.0.0 0.0.0.0 172.31.31.1

2) Настраиваем доступ по SSH к устройству, предвариетльно создав пользователя и сгенерировав ключи rsa:

[AR169]rsa local-key-pair create
The key name will be: Host
RSA keys defined for Host already exist.
Confirm to replace them? (y/n):y
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is less than 2048,
       It will introduce potential security risks.
Input the bits in the modulus[default = 2048]:
Generating keys...
...........................................................................................................................................   
....................   
..............................................        
................        
[AR169]user-interface vty 0 4
[AR169-ui-vty0-4]authentication-mode aaa
[AR169-ui-vty0-4]protocol inbound ssh
[AR169-ui-vty0-4]quit
[AR169]aaa
[AR169-aaa]local-user user1 password irreversible-cipher Pa$$w0rd
[AR169-aaa]local-user user1 privilege level 15
[AR169-aaa]local-user user1 service-type ssh http terminal
[AR169]ssh user user1 authentication-type password

3) Далее, пункт опциональный – обновление ПО до последней версии. Перед началом работы с любым устройством крайне рекомендуется обновится до самой последней версии ПО.
Проверим, какая версия ПО VRP сейчас стоит на роутере:

[AR169]display version
Huawei Versatile Routing Platform Software
VRP (R) software, Version 5.160 (AR160 V200R007C00SPC600PWE)
Copyright (C) 2022-2022 HUAWEI TECH CO., LTD
Huawei AR169W-P-M9 Router uptime is 0 week, 0 day, 0 hour, 53 minutes

MPU 0(Master) : uptime is 0 week, 0 day, 0 hour, 53 minutes
SDRAM Memory Size    : 512     M bytes
Flash 0 Memory Size  : 512     M bytes
MPU version information :
1. PCB      Version  : ARSRU169AGW-L VER.D
2. MAB      Version  : 0
3. Board    Type     : AR169W-P-M9
4. CPLD0    Version  : 0
5. BootROM  Version  : 1
SubBoard[1]:
1. PCB      Version  : AR-1OSPBT-D VER.B
2. Board    Type     : OSP-X86

Как можно заметить, версия ПО VRP этого роутера V200R007C00SPC600PWE. Условно расшифровать можно, как версия 200, релиз 007, номер в релизе 00, service pack 600. Буквы PWE означают Payload without encryption, что означает, что в данной версии ПО отключено стойкое шифрование с длинной ключа выше 56 бит. Если этих букв нет в названии ПО, то устройство будет поддерживать стойкое шифрование.

На момент написания статьи самая свежая доступная версия V200R007C00SPC900, ее можно найти на сайте производителя поиском по ключевым словам “AR 169 OSP”:

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

В случае, если файл будет недоступен для скачивания (пиктограмма в виде замка около названия файла), то следует обратиться к вашему партнеру, через которого приобреталось оборудование.
Скачиваем файл с AR169-OSP-V200R007C00SPC900.cc и выкладываем его на TFTP-сервер. Я использую для этих целей бесплатный tftpd64 для Windows. Мой tftp-сервер располагается в той же сети, что и VLAN1 у роутера. Адрес tftp-сервера 172.31.31.250.

Далее, для скачивания файла нужно выйти в пользовательский режим (с треугольными скобками ) и дать команду на скачивание файла с tftp сервера:

<AR169>tftp 172.31.31.250 get AR169-OSP-V200R007C00SPC900.cc 

Должно начаться скачивание файла на встроенную flash-память. После скачивания, из этого же режима проверим содержимое flash командой dir и убедимся, что все скачалось.

Далее, чтобы при следующей перезагрузке устройства грузилось уже новая версия ПО, нужно в этом же пользовательском режиме дать команду с явным указанием этого нового файла:

<AR169>startup system-software flash:/AR169-OSP-V200R007C00SPC900.cc

Далее, после перезагрузки по команде display version убедимся, что роутер загрузился с новой версией прошивки V200R007C00SPC900.

4) Переходим к созданию виртуальной машины.

Виртуальная машина создается в интерфейсе CLI роутера в режиме virtual-environment.
Сперва проверим, включен ли DHCP на виртуальных интерфейсах GE0/0/5 и GE0/0/6 которые связывают роутер и плату OSP.

Для этого посмотрим конфигурацию всего устройства:

[AR169]display current-configuration
…
interface GigabitEthernet0/0/5
 ip address 192.168.2.1 255.255.255.0
 dhcp select interface
#
interface GigabitEthernet0/0/6
 description VirtualPort
 ip address 192.168.3.1 255.255.255.0
 dhcp select interface
#

Лишний вывод я обрезал, оставил только вывод пятого и шестого интерфейсов. Как можно видеть, здесь присутствует включенный DHCP сервер, который будет раздавать в эти интерфейсы IP-адреса из сеток /24.

В моем случае это было настроено по умолчанию, но в случае, если DHCP на этих интерфейсах не настроен (по крайней мере в мануале про это написано), следует его включить:

[AR169]dhcp enable
[AR169]interface GigabitEthernet0/0/5
[AR169-GigabitEthernet0/0/5]dhcp select interface
[AR169-GigabitEthernet0/0/5]quit
[AR169]interface GigabitEthernet0/0/6
[AR169-GigabitEthernet0/0/6]dhcp select interface

Так же на этом этапе можно сменить адреса вашей виртуальной сети, если эти адреса чем то не устраивают, в данном случае сетевые карты виртуальных машин будут в одном адресном пространстве GigabitEthernet0/0/5, т.е. в данном случае 192.168.2.0 /24. Я оставлю как есть.

Для чего нужно раздавать IP-адреса в этот интерфейс?

Ниже схема того, как взаимосвязаны между собой роутер (MCU) и плата x86 (OSP):

Рис. 5

Как видно из рисунка 5, GE5/0/0/5 является интерфейсом связи с MCU и OSP, и первый выданный по DHCP адрес должен будет получить интерфейс br0 виртуального свича. Проверим, какой адрес выдался из пула адресов интерфейса Gi0/0/5:


[AR169]display ip pool interface gigabitethernet0/0/5 used
 -----------------------------------------------------------------------------
         Start           End     Total  Used  Idle(Expired)  Conflict  Disable
 -----------------------------------------------------------------------------
     192.168.2.1   192.168.2.254   253     1        252(0)         0        0
 -----------------------------------------------------------------------------
  Network section :
 -----------------------------------------------------------------------------
  Index              IP               MAC      Lease   Status
 -----------------------------------------------------------------------------
    253   192.168.2.254    34a2-a2fc-edd8      36112   Used
 -----------------------------------------------------------------------------

Таким образом, адрес 192.168.2.254 будет основной точкой входа в нашу виртуальную среду, именно к нему нужно обращаться для перехода в режим виртуальной среды платы OSP следующей командой:

[AR169]virtual-environment 192.168.2.254

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

Я поднял FTP-сервер FileZilla на машине с адресом 172.31.31.250, подключенным к LAN-свичу нашего устройства, т.е. к VLAN1:

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

Рис.6

Важное замечание. В моем случае, роутер не является шлюзом по умолчанию для FTP-сервера, поэтому я вручную на ftp-сервере прописал статический маршрут в сеть 192.168.2.0 /24 через 172.31.31.77.
На FTP-сервере заведен пользователь user1 которому доступна папка с образом Windows 8.1 – файл с названием win81.iso. Скачаем его в нашу виртуальную среду:

[AR169]virtual-environment 192.168.2.254
[AR169-virtual-environment-192.168.2.254]download package win81.iso ftp ftp://172.31.31.250/win81.iso user user1 password cipher
Enter Password(<1-16>):
The download ratio is 100%.
 Info: Package downloading finished.

Далее, создаем пустой виртуальный диск размером 30Гб для будущей операционной системы:

[AR169-virtual-environment-192.168.2.254]blank-disk name disk1 size 30

Формируем OVA-файл из ISO с параметрами нашей будущей виртуальной машины:

[AR169-virtual-environment-192.168.2.254]ova file win81 iso win81.iso disk disk1 cpu 4 memory 2800 network-card 1 network-card-type virtio extend-description "-hdb /dev/external_disk"
 Info: This operation will take several minutes, please wait....

Комментарии по параметрам команды ova file:

• Первым параметром будет название создаваемого ova-файла без расширения, т.е. win81;
• Параметро iso – наш win81.iso файл, который был скачен ранее;
• Параметр disk – название диска, созданного нами командой blank-disk, т.е. disk1
• Cpu – указываем количество процессоров от 1 до 4.
• Memory – количество оперативной памяти в гигабайтах, в данном случае 2800 Мб (в случае если используем extend-description в предыдущей команде, то больше памяти поставить нельзя).
• Network-card – количество сетевый карт виртуальной машины, в данном случае 1.
• Network-card-type – тип виртуальной карты, возможны три варианта: e1000, rpl8139 и virtio. Рекомендованный тип для Windows – e1000.
• Extend-description – важный параметр, который регламентирует расширеные настройки виртуальной машины, такие как дополнительный жесткий диск, serial interface, HDMI и Audio, а также USB. Если не описывать эти параметры, то виртуальная машина «не увидит» допольнительный жетский диск, который можно установить в наше устроство и т.п.

Но есть важное ограничение, налагаемое CLI устройства – команда целиком не может быть длиннее 256 символов, а параметры подключения USB или HDMI превышают это ограничение.
Для этого случае в руководстве описан способ создание OVA-файла офф-лайн, то есть не на данном устройстве, а на вашей linux-машине. Здесь я не буду приводить это описание и буду использовать только один короткий параметр для подключения внешнего диска: “-hdb /dev/external_disk”. Так же важное замечание при

И так, ova-файл сформирован, можно приступать к инсталляции виртуальной машины из этой сборки:

[AR169-virtual-environment-192.168.2.254]install vm win81 package win81.ova
 Info: This operation will take several minutes, please wait..

Виртуальная машина проинсталлирована, далее зайдем в режим управления виртуальной машины, пропишем номер порта (например 8) по которому она в дальнейшем будет доступна по VNC viewer:

[AR169-virtual-environment-192.168.2.254]vm win81
 [AR169-virtual-environment-vm-win81]vnc-server port 8 password cipher
Enter Password(<6-8>):
[AR169-virtual-environment-vm-win81]

После чего можно виртуальную машину активировать и стартовать:

[AR169-virtual-environment-vm-win81]vm activate
 Info: VM activated successfully.
[AR169-virtual-environment-vm-win81]vm start
 Info: VM started successfully.

Проверим состояние виртуальной машины следующей командой, а также запомним имя ее виртуального интерфейса (veth), оно нам пригодится в следующем шаге:

[AR169-virtual-environment-192.168.2.254]display vm win81
Name:               win81
Status:             running
Package:            win81.ova
Auto-boot:          enable
Exception-action:   alarm
Cpu-shared:
  Current:          0  1  2  3
  Next:
Cpu-mono:
  Current:
  Next:
Storage-claimed:
  Current:
    Disk:           disk1
    Target:         sda
    Size:           30720M
  Next:
Memory:
  Current:          2800M
  Next:
Cdrom:
  Current:
    Name:           win81.iso
    Type:           private
  Next:
Veth:
  Current:
    Name:           win81_eth1
    Mac:            0a:0b:1b:ce:e9:17
  Next:

Из данного вывода видно, что виртуальная машина win81 находится в запущенном состоянии, использует в качестве основного жесткого диска disk1 емкостью 30720 Мб, количество памяти 2800 Мб и ее виртуальный сетевой интерфейс называется win81_eth. Следующим шагом свяжем этот интерфейс с системой роутинга самого роуетера:

Для этого создаем виртуальный интерфейс veth2 для HostOS:

[AR169-virtual-environment-192.168.2.254]veth veth2   

… и создаем виртуальный линк между HostOS и виртуальной машиной Win81 (см. Рисунок 5):

[AR169-virtual-environment-192.168.2.254]link veth veth2 to veth win81_eth1

Добавляем виртуальный интерфейс Host OS к виртуальному свичу vSwitch:

[AR169-virtual-environment-192.168.2.254]ovs bridge br0
[AR169-virtual-environment-ovs-br0]port veth2 link-type access
[AR169-virtual-environment-ovs-br0]quit

Все, работы по созданию виртуальной машины завершены, можно приступать к ее инсталляции и непосредственной работе с ней. Для этого будем использовать бесплатный VNC Viewer, предварительно скачав его с сайта разработчика (RealVNC).

В качестве адреса указываем наш виртуальный интерфейс 192.168.2.254:8 — и порт 8, который мы настроили чуть выше. В настройках соединения, в разделе Expert следует обязательно сделать параметр FullColor = true, в противном случае ничего работать не будет:

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

Рис. 7

Вводим пароль, который мы задали в команде vnc-server и видим начальный экран установки нашей гостевой операционной системы, в данном случае Windows 8.1:

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

Рис. 8.

Процесс инсталляции Windows ничем не отличается от обычного, поэтому я пропущу этот момент, будем считать, что Windows успешно установился и запущен. Сразу же проверим, что у нас с сетевыми настройками:

Android in-app purchase setup keeps returning - Billing service unavailable on device. (response: 3:Billing Unavailable) - Stack Overflow

Рис. 9

Как видно, DHCP выдал адрес 192.168.2.253 и мы можем пинговать шлюз 192.168.2.1. Таким образом, сетевая карта установилась нормально и виртуальная машина взаимодействует с роутером. Осталось выпустить виртуальную машину в интернет (настроить NAT на роутере) и, например, «прокинуть» порт снаружи для доступа по RDP к виртуальной машине (в этом случае крайне желательно настроить на сетевой карте виртуальной машины статический адрес из сети 192.168.2.0/24, а не оставлять его динамическим):

Создадим Access-list для фильтрации хостов, которым нужно предоставить доступ в интернет, в данном случае всю сеть 192.168.2.0 /24 :

[AR169]acl number 2001 
[AR169-acl-basic-2001] rule permit source 192.168.2.0 0.0.0.255
[AR169-acl-basic-2001]quit

Подключим к интерфейсу GigabitEthernet0/0/4 (WAN) кабель от провайдера, пусть нам выделен статический адрес 195.19.XX.XX, шлюз по умолчанию 195.19.XX.1:

[AR169]interface GigabitEthernet0/0/4
[AR169-GigabitEthernet0/0/4]ip address 195.19.XX.XX 255.255.255.224
[AR169-GigabitEthernet0/0/4] nat outbound 2001

Сделаем трансляцию порта с внешнего 33389 на внутренний 3389 хоста нашей виртуальной машины 192.168.2.254

[AR169-GigabitEthernet0/0/4] nat server protocol tcp global current-interface 33389 inside 192.168.2.253 3389
[AR169-GigabitEthernet0/0/4]quit

Настроим маршрут по умолчанию в Интернет:

[AR169] ip route-static 0.0.0.0 0.0.0.0 195.19.XX.1

Обязательно сохраним конфигурацию:

[AR169]save
 Warning: The current configuration will be written to the device.
 Are you sure to continue?[Y/N]:Y
  It will take several minutes to save configuration file, please wait...........
  Configuration file had been saved successfully
  Note: The configuration file will take effect after being activated

На этом базовые настройки можно считать завершенными, была поднята одна виртуальная машина с гостевой ОС Windows 8.1, проведено обновление ПО устройства, сделан доступ в интернет и трансляция порта снаружи для доступа к ОС посредством протокола RDP.

Эти секретные коды Android для «глубоких» настроек системы. Они помогут тогда, когда невозможно это сделать обычным способом. Я лично их всех проверил на Android 4.0.3 Optimus L7. Там, где я написал, что они не работают, это означает, что на моем телефоне они не выполнились (но он реагирует на них как на команды), но на вашем возможно выполнятся.

 * # * # 4636 # * # *  (работает). Этот код может быть использован, чтобы получить интересную информацию о телефоне и аккумуляторе. Он показывает следующие 4 меню на экране:
• Информация о телефоне
• Информация об аккумуляторе
• История батареи
• Статистика использования

* # * # 7780 # * # *(не работает). Этот код можно использовать для сброса данных до заводских. Это удалит следующие вещи:
• Настройки аккаунта Google, сохраненных в телефоне
• Системные и прикладные данные и настройки
• Загруженные данные

Это НЕ удалит:
• Текущее программное обеспечение системы и пакета приложений
• файлы SD карты, например, фотографии, музыкальные файлы и т.д.
PS: Когда вы пропишете этот код, вы получите сообщение с просьбой нажать на «Сброс телефона» кнопку и отменить ее. Таким образом, вы получаете возможность отменить операцию.

* 2767 * 3855 # (работает). Подумайте, прежде чем ввести этот код. Этот код тоже используется для сброса данных до заводских. Это удалит все файлы и параметры, включая внутреннюю память. Это команда сбросит телефон до заводской  прошивки.
PS: Когда вы выполните этот код, не существует способа, чтобы отменить операцию, даже если вы удалите аккумулятор из телефона. Так что подумайте дважды, прежде чем использовать этот код.

* # * # 34971539 # * # *(не работает). Этот код используется для получения информации о телефонной камере. Он показывает следующие 4 меню:
• Обновление прошивки на изображении (Не пробуйте эту опцию)
• Обновление прошивки камеры в SD карты
• Получить версию прошивки камеры
• Получить обновление прошивки, код
ВНИМАНИЕ: Никогда не используйте первый вариант, иначе ваша телефонная камера перестанет работать, и вы должны будете отнести телефон в сервисный центр для переустановки прошивки.

* # * # 7594 # * # *(не работает). Этот код может быть использован для изменения  кнопки действия в телефоне «Вкл/Выкл» . По умолчанию, если вы на долго зажимаете эту кнопку, он предлагает выбрать любой вариант из: беззвучный режим, режим полета и выключения. Вы можете изменить эти действия с помощью этого кода.

* # * # 273283 * 255 * 663 282 *#*#*(не работает). Этот код открывает экран копирования файлов, где вы можете выполнить резервное копирование всех файлов, например, изображение, звук, видео и голосовые заметки.

* # * # 197328640 # * # *(не работает).  Этот код можно использовать для входа в режим службы. Вы можете выполнять различные тесты и изменить настройки в сервисном режиме.
WLAN, GPS и Bluetooth.

Коды испытаний:
* # * # 232339 # * # *  (не работает) или * # * # 526 # * # *(не работает) или * # * # 528 # * # *  (не работает)

— WLAN испытания (Используйте кнопки «Меню», чтобы начать различные тесты)

* # * # 232338 # * # * (не работает) — показывает WiFi MAC-адресов

* # * # 1472365 # * # *  (не работает) — GPS-тест
* # * # 1575 # * # *(не работает) — Другой тест GPS
* # * # 232331 # * # *(не работает) — Bluetooth тест
* # * # 232337 # * #(не работает) — Показывает Bluetooth адрес устройства
* # * # 8255 # * # *(работает). Этот код может быть использован для запуска GTalk службы монитора.

Коды, чтобы получить информацию о версии прошивки:
* # * # 4986 * # 2650468 * # *(не работает). КПК, телефон, H / W, RFCallDate.
* # * # 1234 # * # *  (не работает) — КПК и телефонов
* # * # 1111 # * # *(не работает) — FTA SW версия
* # * # 2222 # * # *(не работает) — FTA HW версии
* # * # 44336 # * # *(не работает) — КПК, телефон, CSC, Время создания, список изменений числа

Коды для запуска различных заводских испытаний:
* # * # 0283 # * # *(не работает)— пакет Loopback
* # * # 0 *#*#*(не работает) — ЖК-тест
* # * # 0673 # * # *(не работает) или * # * # 0289 # * # *(не работает) — Мелодия тест
* # * # 0842 # * # *(не работает) — устройства для испытания (вибрационных испытаний и подсветка тест)
* # * # 2663 # * # *(не работает) — Сенсорный экран версия
* # * # 2664 # * # *(не работает) — Сенсорный экран тест
* # * # 0588 # * # *(не работает) — Датчик испытания
* # * # 3264 # * # *(не работает) — RAM версия

Понравилась статья? Поделить с друзьями:
  • Bill love eating strawberries and cream найти ошибку
  • Bill jammed ict ошибка
  • Bill acceptor error перевод
  • Bigup2 dll ошибка
  • Bigfoot error netchecksummismatch