Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Introducing Unibill - the cross platform In App purchase plugin!

Discussion in 'Assets and Asset Store' started by Banderous, Jan 16, 2013.

  1. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
  2. Tx

    Tx

    Joined:
    Jul 4, 2012
    Posts:
    108
    I wonder how you could make an update that is clearly breaking a so famous and widespread plugin.
    And you did at the same time the new IAP solution comes from Unity itself. You people aren't really helping people making games, you know?
     
  3. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
  4. aero80

    aero80

    Joined:
    Jan 29, 2013
    Posts:
    27
    With Unity 5.3.1 I swapped unibill with Unity IAP. Upgrade was easy apart from some issues. Product titles from google play also has the game name in it like "Product Title ( Game name )". In another thread you said Unity doesnt alter metadata and thats the title you get. However I didnt have that problem with unibill which I assume was also getting that info from google play. Were you stripping that info in unibill somewhere? And now do I have to strip that manually? or may be is it a Unity bug.

    And I also noticed when I first installed the upgraded version adb log printed out somethin like "Upgrading Playerprefs". I was wondering if that might mess up my own save file. I am not sure Unity IAP is responsible but that file somehow got deleted.
     
  5. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @aero80 Google play seems to add the game title in parentheses to the title sometimes, I am not sure why - it is not added by either Unibill or Unity IAP.

    I believe that PlayerPrefs message is unrelated to IAP.
     
  6. DominiqueT

    DominiqueT

    Joined:
    Mar 27, 2014
    Posts:
    49
    @Banderous: have you any idea, how I can force the "finish" transaction on iOS with Unibill ?

    We have same issue as here:
    http://stackoverflow.com/questions/26401275/non-renewing-subscription-already-purchased-alert-track

     
  7. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unibill should automatically close any open transactions, your app should not need to do so manually. Can you capture an xcode trace of this occurring on a device?
     
  8. DominiqueT

    DominiqueT

    Joined:
    Mar 27, 2014
    Posts:
    49
    No I can't. Some players have this issue but I can't reproduce it.
    I have more and more players having this issue, how can I force the closing?
     
  9. akasurreal

    akasurreal

    Joined:
    Jul 17, 2009
    Posts:
    442
    Not sure if this is 100% correct but I was able to fix by manually replacing all Unibill references to ILogger with Uniject.ILogger. Fixed editor errors, but haven't done real world tests yet.
     
  10. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Thibaudz, are the reports coming in for iOS9 exclusively?
     
  11. DominiqueT

    DominiqueT

    Joined:
    Mar 27, 2014
    Posts:
    49
    Lot of iOS 9 (9.1/9.2) but I have at least one iPhone OS 7.1.2
     
  12. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Are these subscriptions as in the forums posts you linked to? There are some IAP related problems Apple is currently investigating but they affect fulfilment of all IAPs.

    If your OnPurchaseSucceeded handler threw an exception it would prevent the transaction being closed, but otherwise in this situation the normal purchase flow would be triggered when the user pressed 'OK'.
     
  13. DominiqueT

    DominiqueT

    Joined:
    Mar 27, 2014
    Posts:
    49
    Our IAP are only consumables.
     
  14. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unibill would always close a consumable transaction unless your OnPurchaseSucceeded handler threw an exception. You are on Unibill 1.10.6, correct?
     
  15. DominiqueT

    DominiqueT

    Joined:
    Mar 27, 2014
    Posts:
    49
    Where can I find the version?
     
  16. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
  17. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    I am an existing customer of unibill, I am currently using 1.9.5, what is the latest version ? how can I get the update ?
     
  18. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
  19. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    Which version does unibill support GooglePlay PurchasableItem.localizedPriceString ?
     
  20. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    That has been part of the Unibill API from v1.
     
  21. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    I always get the US price whenever use any google account in different country.
     
  22. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    The string is formatted by Google, not Unibill. Unibill just forwards what it is given by Google Play. Are you sure you're signed into a Google account in the right country?
     
  23. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    I can see the correct localized price in the native Google intent view, but the json file returned by unibill is always be in US price.
     
  24. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Try clearing the cache of the google play app. It's probably caching US values.
     
  25. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    Finally, problem is solved. It is because the device is not connected to the right country through vpn.
     
  26. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
  27. alexsan75

    alexsan75

    Joined:
    Feb 6, 2012
    Posts:
    95
    I also need the latest version of Unibill compatible with Unity 5.3.. the one I have -> gives me some errors after importing into Unity 5 project :( , and my game depends on Unibill asset.

    I did sent an e-mail to support@outlinegames.com with my Order details, waiting for reply ... ;)
     
    Last edited: Feb 8, 2016
  28. Bisong

    Bisong

    Joined:
    Jun 14, 2013
    Posts:
    1
    Hi Banderous, I'm getting a small issue with Unibill. I initialize Unibill at the start of the game but when I try to purchase I get the BILLER_NOT_READY error. I don't think it should take that long to initialize so maybe I'm missing something?
     
  29. Maulwurfmann

    Maulwurfmann

    Joined:
    Mar 11, 2014
    Posts:
    366
    I sent an e-mail today to get the latest Version, because i am currently using Unibill 1.10.5 with Unity 5.2.4f1 and Xcode 7.2. this will get an error when signing the app in xcode (without unibill it works).

    Since it`s quite urgent, could you please make sure that i get the updated version asap? Thanks!
     
  30. rizwan-ali402

    rizwan-ali402

    Joined:
    Feb 11, 2016
    Posts:
    1
    I am getting the same error as @djfrail I was just setting up amazon GameCircle plugin for leaderboard. But When I compile I get this error
    Assets/Plugins/AmazonGameCirclePlugin/Source/PlayerClient/AGSPlayerClient.cs(145,32): error CS0234: The type or namespace name `jsonEncode' does not exist in the namespace `MiniJSON'. Are you missing an assembly reference?

    But MiniJSON does exist in my project on path Assets/Plugins/AmazonCommon/Source/MiniJSON
    Unable to resolve?

    what do you mean by default namespace.?
     
  31. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    That appears to be a problem with the Amazon Game Circle plugin, I suggest you use their support channels.
     
  32. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    1.7.18
    All platforms - removed use of SystemInfo.deviceUniqueIdentifier, which resulted in adding a READ_PHONE_STATE permission on Android.

    On Android 6, if permission READ_PHONE_STATE is turn off, Is Unibill working property on Google Play Store ?
     
  33. jf3000

    jf3000

    Joined:
    Dec 31, 2013
    Posts:
    166
    Isn't this app dead since its no longer supported on the asset store or homepage, Website link on mainpage should be edited.
     
  34. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    @yuewahchan Unibill 1.7 is old (2014). Recent versions don't add or require that permission so as long as you're ahead of 1.7 you should be fine.
     
  35. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    we currently using 1.9.5, the Changelog.txt didn't mention that READ_PHONE_STATE permission is not required after 1.7.18.
    Thank for you reply that I can remove READ_PHONE_STATE permission safely.
     
  36. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    Is unibill managing consumable purchases for GooglePlay ?

    https://developer.android.com/google/play/billing/api.html

    when the user starts up or logs in to your application, you should check if the user owns any outstanding consumable in-app products; if so, make sure to consume and provision those items. Here's the recommended application startup flow if you implement consumable in-app products in your application:
    1. Send a getPurchases request to query the owned in-app products for the user.
    2. If there are any consumable in-app products, consume the items by calling consumePurchase. This step is necessary because the application might have completed the purchase order for the consumable item, but stopped or got disconnected before the application had the chance to send a consumption request.
    3. Get a response code from Google Play indicating if the consumption completed successfully.
    4. If the consumption was successful, provision the product in your application.
     
  37. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Yes, Unibill manages consumables but please move to Unity IAP as soon as possible.
     
  38. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    If Unity IAP handle the case 2 ?
     
  39. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
  40. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    I know that Unibill is deprecated, but we have a long-gestating game that’s stuck on Unity 4.7 and thus still using Unibill. We’re finally getting to the Amazon version….but it seems that Amazon no longersupports their IAP v1, only the newer v2. I don’t find anything about this on the Unibill, site, so I fear thatUnibill only supports v1. Is that true? If so…any suggestions on how to make it compliant with v2?

    Info:
    <https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/migrate-iapv1-apps-to-iapv2>
     
  41. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Unibill uses Amazons v2 api.
     
    gecko likes this.
  42. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    Ah! Happy happy happy!
     
  43. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    So now I'm trying to get Amazon IAP set up. I have Amazon's App Tester on my Kindle, but in step 5, IAP Items in JSON File, it says "Please check the format of json data in the amazon.sdktester.json file." And indeed, that file is completely empty. I suspect the reason is because I've always had a weird glitch with the Unibill Inventory Inspector -- I fill in the info, click Save, and it writes an empty file to disk. So I've had to edit the inventory.jason file manually...which isn't a big problem, but I guess that's now preventing the sdktester file from being generated properly. Is there an example of that file somewhere so I can see the format and update it with my IAP data?

    UPDATE: I found that I can generate that SDKTester file on the Amazon Dev Portal, so I did that, and then copied the contents of that file into the sdktester file in my project. But when I install a build onto the Kindle, that file is not transferred over. (I search the device using a file browser and nothing is found.)

    From logcat:

    I/Unity ( 8569): Unibill.RemoteConfigManager: Not using cached inventory, using bundled.

    I/Unity ( 8569):

    I/Unity ( 8569): (Filename: ./artifacts/AndroidManagedGenerated/UnityEngineDebug.cpp Line: 56)

    I/Unity ( 8569):

    I/Unity ( 8569): NullReferenceException: Object reference not set to an instance of an object

    I/Unity ( 8569): at Unibill.Impl.RawAmazonAppStoreBillingInterface..ctor (Unibill.Impl.UnibillConfiguration config) [0x00000] in <filename unknown>:0

    I/Unity ( 8569): at Unibill.Impl.RawBillingPlatformProvider.getAmazon () [0x00000] in <filename unknown>:0

    I/Unity ( 8569): at Unibill.Impl.BillerFactory.instantiateBillingSubsystem () [0x00000] in <filename unknown>:0

    I/Unity ( 8569): at Unibill.Impl.BillerFactory.instantiate () [0x00000] in <filename unknown>:0

    I/Unity ( 8569): at Unibiller.Initialise (System.Collections.Generic.List`1 runtimeProducts) [0x00000] in <filename unknown>:0

    I/Unity ( 8569): at IAPScreen.Awake () [0x00000] in <filename unknown>:0


    _____

    And the Amazon App Tester app still says "Please check the format..."

    In the unibill json file:
    "androidBillingPlatform": "AmazonAppstore",
    ...
    "useAmazonSandbox": true,
     
    Last edited: Sep 6, 2016
  44. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    So now, unable to solve the problem above, I'm trying to submit the app to Amazon for Live Testing -- but I get an error and a caution:

    Issue : Incorrect usage of Amazon IAP

    Your app or game has not implemented receiver component or mandatory API calls corresponding to an IAP Purchase that you have initiated. This could lead to failed purchases.

    Caution : Google In-App Billing Detected

    Your APK includes a manifest declaration or an API invocation referring to Google in-app billing services.
    Other Android Devices

    ___
    and indeed, looking at the Manifest, there's no mention of Amazon in there. I'd guess this also stems to the problem I have with the Unibill Inventory Editor (when I save changes to it, it deletes all contents of the inventory json file). I thought I could workaround that by manually editing the inventory file, but apparently Unibill does some other functions that I can't (or at least don't know how) to do manually. Maybe i just need need an example Manifest file so I can copy the appropriate lines into it...would anyone like to share theirs with me?

    (I think I can ignore that Caution, right?)
     
  45. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    Try switching to Google play and then back to Amazon in unibill inventory editor. It will regenerate your manifest.
     
  46. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    No, the problem is that the Unibill Inventory tool doesn't work in my project -- when I click Save, it wipes the contents of the inventory.json file completely. So I have to do everything manually.

    And now it also seems that the Android Manifest is not getting the Unibill activity and permission code when I build the project. (When I look in the StagingArea Manifest file, there's no BILLING nor any Unibill lines.) Any idea on how to make that work?
     
  47. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    Here is the console error when I use the Unibill Inventory inspector (which deletes all contents of the inventory.json file, which I guess is the heart of all the problems I'm having):

    NullReferenceException: Object reference not set to an instance of an object
    Unibill.Impl.MiniJsonExtensions.getString (System.Collections.Generic.Dictionary`2 dic, System.String key, System.String defaultValue) (at Assets/Plugins/unibill/src/impl/MiniJSON.cs:757)
    Unibill.Impl.UnibillConfiguration..ctor (System.String json, RuntimePlatform runtimePlatform, ILogger logger, System.Collections.Generic.List`1 runtimeProducts) (at Assets/Plugins/unibill/src/impl/UnibillConfiguration.cs:61)
    UnibillInjector.GetConfig () (at Assets/Editor/unibill/src/Injector.cs:16)
    UnibillInjector.GetStorekitGenerator () (at Assets/Editor/unibill/src/Injector.cs:44)
    InventoryEditor.serialise () (at Assets/Editor/unibill/src/InventoryEditor.cs:204)
    InventoryEditor.OnGUI () (at Assets/Editor/unibill/src/InventoryEditor.cs:138)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    UnityEditor.PopupCallbackInfo:SetEnumValueDelegate(Object, String[], Int32)


    All this works in a simple new project, so I've tried copying the files from that project into my main project, but apparently that doesn't fully work.
     
  48. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    So now I'm manually copied all the pertinent lines from the unicode manifest into my main manifest. After building the game, I can see in Temp/StagingArea/AndroidManifest.xml that the unibill lines are there, specifically:

    <activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:label="@String/app_name" android:name="com.outlinegames.unibill.PurchaseActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
    </activity>
    <receiver android:name="com.amazon.inapp.purchasing.ResponseReceiver">
    <intent-filter>
    <action android:name="com.amazon.inapp.purchasing.NOTIFY" android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY" />


    However, when I upload, then download the game from Google Play, in Alpha Testing, I get this error in logcat:


    I/ActivityManager( 500): START u0 {cmp=com.eduweb.mygame/com.outlinegames.unibill.PurchaseActivity (has extras)} from pid 6430
    I/Unity ( 6430): AndroidJavaException: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.eduweb.gamename/com.outlinegames.unibill.PurchaseActivity}; have you declared this activity in your AndroidManifest.xml?


    So I'm stumped about where the problem now lies. Can anyone help me?

    thanks
    Dave
     
  49. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    I found a post on StackExchange about a similar error, so I changed the line in the manifest to:

    <activity android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:name="com.eduweb.gamename.unibill.PurchaseActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

    But I still get an error in the Alpha Test build on Google Play:

    I/ActivityManager( 500): START u0 {cmp=com.eduweb.gamename/com.outlinegames.unibill.PurchaseActivity (has extras)} from pid 27241
    D/dalvikvm(30842): GC_EXPLICIT freed 248K, 17% free 9837K/11852K, paused 5ms+8ms, total 224ms
    I/Auth (30842): [AuthDelegateWrapper] Service intent: Intent { cmp=com.google.android.gms/.auth.account.authenticator.DefaultAuthDelegateService }.
    I/Auth (30842): [AuthDelegateWrapper] Service intent: Intent { cmp=com.google.android.gms/.auth.account.authenticator.DefaultAuthDelegateService }.
    I/PlayCommon( 6855): [836] com.google.android.play.a.l.a(927): Connecting to server: https://play.googleapis.com/play/log?format=raw&proto_v2=true
    I/Unity (27241): AndroidJavaException: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.eduweb.gamename/com.outlinegames.unibill.PurchaseActivity}; have you declared this activity in your AndroidManifest.xml?
     
  50. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    I have made progress with the game on Amazon Appstore -- in Live App Testing, I can download the game, and purchase IAP -- but the game crashes when that transaction is in progress or completed:

    E/AndroidRuntime(17885): FATAL EXCEPTION: main
    E/AndroidRuntime(17885): Process: com.eduweb.gamename, PID: 17885
    E/AndroidRuntime(17885): java.lang.Error: FATAL EXCEPTION [main]
    E/AndroidRuntime(17885): Unity version : 4.7.2f1
    E/AndroidRuntime(17885): Device model : Amazon KFTHWI
    E/AndroidRuntime(17885): Device fingerprint: Amazon/thor/thor:4.4.3/KTU84M/13.4.5.5_user_455004220:user/release-keys
    E/AndroidRuntime(17885):
    E/AndroidRuntime(17885): Caused by: java.lang.RuntimeException: Unable to instantiate receiver com.amazon.inapp.purchasing.ResponseReceiver: java.lang.ClassNotFoundException: Didn't find class "com.amazon.inapp.purchasing.ResponseReceiver" on path: DexPathList[[zip file "/data/app/com.eduweb.gamename-1.apk", zip file "/system/priv-app/MetricsApi-2066310.apk", zip file "/system/priv-app/com.amazon.dp.logger.apk"],nativeLibraryDirectories=[/data/app-lib/com.eduweb.gamename-1, /vendor/lib, /system/lib]]
    E/AndroidRuntime(17885): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2493)
    E/AndroidRuntime(17885): at android.app.ActivityThread.access$1700(ActivityThread.java:145)
    E/AndroidRuntime(17885): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
    E/AndroidRuntime(17885): at android.os.Handler.dispatchMessage(Handler.java:102)
    E/AndroidRuntime(17885): at android.os.Looper.loop(Looper.java:145)
    E/AndroidRuntime(17885): at android.app.ActivityThread.main(ActivityThread.java:5266)
    E/AndroidRuntime(17885): at java.lang.reflect.Method.invokeNative(Native Method)
    E/AndroidRuntime(17885): at java.lang.reflect.Method.invoke(Method.java:515)
    E/AndroidRuntime(17885): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:826)
    E/AndroidRuntime(17885): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:642)
    E/AndroidRuntime(17885): at dalvik.system.NativeStart.main(Native Method)
    E/AndroidRuntime(17885): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.amazon.inapp.purchasing.ResponseReceiver" on path: DexPathList[[zip file "/data/app/com.eduweb.gamename-1.apk", zip file "/system/priv-app/MetricsApi-2066310.apk", zip file "/system/priv-app/com.amazon.dp.logger.apk"],nativeLibraryDirectories=[/data/app-lib/com.eduweb.gamename-1, /vendor/lib, /system/lib]]
    E/AndroidRuntime(17885): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    E/AndroidRuntime(17885): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
    E/AndroidRuntime(17885): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
    E/AndroidRuntime(17885): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2488)
    E/AndroidRuntime(17885): ... 10 more
    I/ActivityManager( 926): handleApplicationCrash
    I/AndroidRuntime(17885): To Report FATAL to activityManagerService
    W/ActivityManager( 926): Force finishing activity com.eduweb.gamename/com.unity3d.player.UnityPlayerNativeActivity
    D/ActivityManager( 926): Ignoring request to show crash dialog - MASTER_DISABLE_ANR_CRASH_DIALOGS_KEY set
    I/Process (17885): Sending signal. PID: 17885 SIG: 9

    _____

    Then when I relaunch the game, I tap the "restore previous purchases" button but nothing happens. So then try to purchase that item again, but I get "You already own this item" alert. I tap "OK" on that and the app crashes again.

    W/ActivityManager( 926): Input dispatching paused for current ActivityRecord: ActivityRecord{41db4450 u0 com.amazon.venezia/.iap.PurchaseChallengeActivity t17}

    D/AmazonTransitionManager( 926): openingActivityName = com.amazon.venezia.iap.PurchaseChallengeActivity, animationType = Activity open/close (tablet:FADE phone:SLIDE)
    D/ActivityManager( 926): single user service: com.amazon.imp
    D/ActivityManager( 926): app = com.amazon.imp, has single user service, setting process record.
    I/ActivityManager( 926): Displayed com.amazon.venezia/.iap.PurchaseChallengeActivity: +77ms
    I/ActivityManager( 926): Next activity is on the same task, skipping moveHomeToTop()