2012/8/14 Acubeware <supp...@acubeware.com>

> Thanks for your response. The user has informed us that their version of
> the Google Play app is 3.7.15.


So is mine on a Galaxy Nexus....

Still -- if that device uses a pirated version of Market (even the latest
version) it could break in various ways. And it does look like a generic
no-name tablet with someone's logo on it.

Also, here is the relevant code from the LVL library:

            if (mService == null) {
                Log.i(TAG, "Binding to licensing service.");
                try {
                    boolean bindResult = mContext
                            .bindService(
                                    new Intent(
                                            new String(

Base64.decode("Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U="))),
                                    this, // ServiceConnection.
                                    Context.BIND_AUTO_CREATE);

                    if (bindResult) {
                        mPendingChecks.offer(validator);
                    } else {
                        Log.e(TAG, "Could not bind to service.");
                        handleServiceConnectionError(validator);
                    }
                } catch (SecurityException e) {

callback.applicationError(LicenseCheckerCallback.ERROR_MISSING_PERMISSION);
                } catch (Base64DecoderException e) {
                    e.printStackTrace();
                }
            } else {
                mPendingChecks.offer(validator);
                runChecks();
            }
        }

The base64 string is used starting with LVL version 2 and decodes to
"com.android.vending.licensing.ILicensingService", same action value as was
used in LVL version 1.

I guess what I would do at this point, if the user has enough patience to
investigate this further, is to write a simple test app that attempts to
bind to the licensing service, and also queries the package manager to
attempt resolving the bind intent.

The test app won't be able to perform a real LVL check on behalf of your
app but just attempting to bind should be useful. It could call the LVL
with its own package name, and that should return "not market managed"...

The point of all this would be to find out for sure if there is something
wrong with Market on the device -- I believe there is, but if you wanted to
be certain, you should be able to clarify the issue with a simple test like
this.

-- K


>
>
> On Thursday, July 26, 2012 10:24:00 PM UTC+12, Kostya Vasilyev wrote:
>
>> Ask the user to check the Google Play app version.
>>
>> I'd guess the device uses the Play app obtained in unofficial ways
>> (putting it mildly), and as such, various pieces of functionality may break
>> in unexpected ways.
>>
>> -- K
>>
>> 2012/7/24 Acubeware <sup...@acubeware.com>
>>
>>> Hi,
>>>
>>> We have published an app on Google Play Store that uses the Android
>>> license verification library. We have a customer whose license is unable to
>>> be verified because the LVL library cannot bind to the licensing service
>>> (as highlighted in the customer's log file pasted below). This appears to
>>> be a device specific issue because our application has been tested on a
>>> number of different devices and Android versions without problem. We also
>>> have a number of other customers who are successfully using the application.
>>>
>>> The device that is experiencing this problem is an ALLVIEW PC ALLDRO
>>> SPEED with a CORTEX A8, 1.2 GHZ processor running Android 4.0. The
>>> device has the Google Play app installed. Does anyone have any idea as
>>> to what could be causing the bindService call to fail?
>>>
>>> 06-26 21:47:33.929 I/System  ( 1224): Failed to destroy process 1442
>>> 06-26 21:47:33.929 I/System  ( 1224): libcore.io.ErrnoException: kill
>>> failed: ESRCH (No such process)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at libcore.io.Posix.kill(Native
>>> Method)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at libcore.io.ForwardingOs.kill(*
>>> *F**orwardingOs.java:77)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at java.lang.ProcessManager$**
>>> Proce**ssImpl.destroy(**ProcessManager.**java:257)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at com.nolanlawson.logcat.b.a.b(*
>>> *U**nknown Source)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at com.nolanlawson.logcat.reader.
>>> ****LogcatReaderLoader.<init>(**Unkn**own Source)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at com.nolanlawson.logcat.reader.
>>> ****LogcatReaderLoader.a(Unknown Source)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at com.nolanlawson.logcat.b.o.a(*
>>> *U**nknown Source)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at com.nolanlawson.logcat.b.f.**
>>> doI**nBackground(Unknown Source)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at android.os.AsyncTask$2.call(**
>>> As**yncTask.java:264)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at java.util.concurrent.**
>>> FutureTas**k$Sync.innerRun(**FutureTask.**java:305)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at java.util.concurrent.**
>>> FutureTas**k.run(FutureTask.**java:137)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at java.util.concurrent.**
>>> ThreadPoo**lExecutor.runWorker(**ThreadPool**Executor.java:1076)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at java.util.concurrent.**
>>> ThreadPoo**lExecutor$Worker.run(**ThreadPoo**lExecutor.java:569)
>>> 06-26 21:47:33.929 I/System  ( 1224):  at java.lang.Thread.run(Thread.**
>>> ja**va:856)
>>> 06-26 21:47:34.099 W/InputManagerService(  145): Starting input on
>>> non-focused client com.android.internal.view.**IInp**
>>> utMethodClient$Stub$Proxy@**413e**a598 (uid=10048 pid=1224)
>>> 06-26 21:47:34.169 D/dalvikvm( 1224): GC_CONCURRENT freed 833K, 41% free
>>> 6819K/11527K, paused 2ms+18ms
>>> 06-26 21:47:34.209 V/TabletStatusBar(  212): setLightsOn(true)
>>> 06-26 21:47:34.499 D/dalvikvm( 1224): GC_CONCURRENT freed 526K, 41% free
>>> 6805K/11527K, paused 2ms+13ms
>>> 06-26 21:47:36.139 I/wpa_supplicant(  783): [CTRL_IFACE]SIGNAL_POLL
>>> 06-26 21:47:39.149 I/wpa_supplicant(  783): [CTRL_IFACE]SIGNAL_POLL
>>> 06-26 21:47:39.269 D/WindowManager(  145): statusbarShow mStatusBarShow
>>> = true
>>> 06-26 21:47:40.369 D/WindowManager(  145): statusbarShow mStatusBarShow
>>> = true
>>> 06-26 21:47:40.389 I/ActivityManager(  145): START
>>> {act=android.intent.action.**MAI**N 
>>> cat=[android.intent.category.**L**AUNCHER]
>>> flg=0x10000000 pkg=com.acubeware.mobilesell cmp=com.acubeware.mobilesell/.
>>> ****activity.Splash bnds=[88,42][184,138]} from pid 337
>>> 06-26 21:47:40.579 D/OpenGLRenderer(  337): Flushing caches (mode 1)
>>> 06-26 21:47:40.609 D/OpenGLRenderer(  337): Flushing caches (mode 0)
>>> 06-26 21:47:40.729 I/LicenseChecker( 1378): Binding to licensing service.
>>> 06-26 21:47:40.729 E/LicenseChecker( 1378): Could not bind to service.
>>> 06-26 21:47:40.729 W/ActivityManager(  145): Unbind failed: could not
>>> find connection for android.os.BinderProxy@**412593a**8
>>> 06-26 21:47:40.739 E/Splash  ( 1378): Application not licensed!
>>>
>>> Thanks.
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Android Developers" group.
>>> To post to this group, send email to android-d...@**googlegroups.com
>>>
>>> To unsubscribe from this group, send email to
>>> android-developers+**unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/**group/android-developers?hl=en<http://groups.google.com/group/android-developers?hl=en>
>>>
>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to