Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

App Rejection on Kindle Fire TV

Discussion in 'Android' started by kenlem, May 13, 2014.

  1. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    I submitted a small app to Amazon with support for the Kindle Fire TV and got the following rejection notice.

    When the user presses the home button (ESC key), I call Application.Quit. What should I be doing? Is there a way to force the application into the background so it can resumed later?
     
  2. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    Just remove Application.Quit directive... Without it app should pause/resume properly as Amazon required...
     
  3. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    Hmmm... I did that. It looks like it still quits the app. I'll have to look further.

    Have you managed to get something on the Amazon App Store for the Kindle Fire TV written in Unity?
     
  4. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    I can see that when the home button is hit the app pauses. When I relaunch it, it doesn't resume but starts at the splash screen. I made a small sample app and that behaves properly. There is something abot my app that is forcing to to exit in suspend. I'm using a manifest that I got from Amazon. Wonder if that might be a problem?
     
  5. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    That might be it, I would suggest removing that manifest and Unity will use it's own version. If you need to add some directives to it (i.e. IAP, etc.) fetch the Unity version and use that as a base. It's available in plyaers/android folder of Unity package (osx) or folder (windows).
     
  6. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    I did remove the Amazon manifest and built. I expected the default Unity manifest to be copied to the project automatically but it wasn't. I couldn't find where on the drive the file was (OSX) so thanks for your tip about it's location.

    That's the next step for me to try. Luckily, all my calls to Amazon Game Circle are in conditional compilation defines.
     
  7. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    OK. If I use the default Unity android manifest and remove calls to Game Circle the app resumes properly. I'll have to see if I can figure out the differences in the Amazon manifest. Silly me for expecting the manifest provided by Amazon for Unity to work correctly.
     
  8. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    I haven't done that integration before but based on the info it should be something like this...

    Code (csharp):
    1.  
    2. <?xml version="1.0" encoding="utf-8"?>
    3. <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" android:installLocation="preferExternal" android:versionCode="1" android:versionName="1.0">
    4.   <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
    5.   <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:debuggable="true">
    6.     <activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name">
    7.       <intent-filter>
    8.         <action android:name="android.intent.action.MAIN" />
    9.         <category android:name="android.intent.category.LAUNCHER" />
    10.       </intent-filter>
    11.       <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    12.       <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
    13.     </activity>
    14.     <activity
    15.     android:name="com.amazon.identity.auth.device.authorization.AuthorizationActivity"
    16.     android:allowTaskReparenting="true"
    17.     android:launchMode="singleTask"
    18.     android:theme="@android:style/Theme.NoDisplay" >
    19.     <intent-filter>
    20.        <action android:name="android.intent.action.VIEW" />
    21.        <category android:name="android.intent.category.DEFAULT" />
    22.        <category android:name="android.intent.category.BROWSABLE" />
    23.        <data
    24.           android:host="com.unity3d.player.UnityPlayerNativeActivity"
    25.           android:scheme="amzn" />
    26.      </intent-filter>
    27.      </activity>
    28.   </application>
    29. </manifest>
    30.  
     
  9. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    THANKS! That worked properly when once I added permissions. Well, it seems to work. Now, I just need to retest everything.

    I was using my bundle id for <put your package name here>.

    The sample manifest provided looks like this. I wonder what all the other stuff does?

    Code (csharp):
    1.  
    2.     android:versionCode="1"
    3.     android:versionName="1.0">
    4.     <supports-screens
    5.         android:smallScreens="true"
    6.         android:normalScreens="true"
    7.         android:largeScreens="true"
    8.         android:xlargeScreens="true"
    9.         android:anyDensity="true"/>
    10.  
    11.     <application
    12.         android:icon="@drawable/app_icon"
    13.         android:label="@string/app_name"
    14.         android:debuggable="true">
    15.        
    16.         <!-- Unity Activities -->
    17.         <activity android:name="com.unity3d.player.UnityPlayerProxyActivity"
    18.                   android:label="@string/app_name"
    19.                   android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    20.             <intent-filter>
    21.                 <action android:name="android.intent.action.MAIN" />
    22.                 <category android:name="android.intent.category.LAUNCHER" />
    23.             </intent-filter>
    24.         </activity>
    25.         <activity android:name="com.unity3d.player.UnityPlayerActivity"
    26.                   android:label="@string/app_name"
    27.                   android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    28.         </activity>
    29.         <activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
    30.                   android:label="@string/app_name"
    31.                   android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    32.             <meta-data android:name="android.app.lib_name" android:value="unity" />
    33.             <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
    34.         </activity>
    35.         <activity android:name="com.unity3d.player.VideoPlayer"
    36.                   android:label="@string/app_name"
    37.                   android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    38.         </activity>
    39.        
    40.         <!-- GameCircle Dependencies -->
    41.         <activity android:name="com.amazon.ags.html5.overlay.GameCircleUserInterface"
    42.                 android:theme="@style/GCOverlay"
    43.                 android:hardwareAccelerated="false">
    44.         </activity>
    45.         <activity android:name="com.amazon.ags.html5.overlay.GameCircleAlertUserInterface"
    46.                 android:theme="@style/GCAlert"
    47.                 android:hardwareAccelerated="false">
    48.         </activity>
    49.        
    50.         <activity
    51.             android:name="com.amazon.identity.auth.device.authorization.AuthorizationActivity"
    52.             android:allowTaskReparenting="true"
    53.             android:launchMode="singleTask"
    54.             android:theme="@android:style/Theme.NoDisplay" >
    55.             <intent-filter>
    56.                 <action android:name="android.intent.action.VIEW" />
    57.  
    58.                 <category android:name="android.intent.category.DEFAULT" />
    59.                 <category android:name="android.intent.category.BROWSABLE" />
    60.  
    61.                 <data
    62.                     android:host="<put your packagename here>"
    63.                     android:scheme="amzn" />
    64.             </intent-filter>
    65.         </activity>
    66.  
    67.         <receiver
    68.             android:name="com.amazon.identity.auth.device.authorization.PackageIntentReceiver"
    69.             android:enabled="true" >
    70.             <intent-filter>
    71.                 <action android:name="android.intent.action.PACKAGE_INSTALL" />
    72.                 <action android:name="android.intent.action.PACKAGE_ADDED" />
    73.  
    74.                 <data android:scheme="package" />
    75.             </intent-filter>
    76.         </receiver>
    77.  
    78.         <!-- META-DATA --> 
    79.    
    80.     </application>
    81.     <!-- PERMISSIONS -->
    82.     <uses-permission android:name="android.permission.INTERNET" />
    83.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    84.    
    85. </manifest>
    86.  
     
  10. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    Rats. WhisperSync failed to initialize. I posted over in the Game Circle Forum. :(
     
  11. kenlem

    kenlem

    Joined:
    Oct 16, 2008
    Posts:
    1,630
    Amazon says it doesn't sound like I'm doing anything wrong. They are looking at the issue. Has any one else here be able to submit to the Amazon Fire TV with Game Circle?