Tuesday, November 13, 2012

Android compatibility utter nonsense!

I am in the process of fine-tuning my game and trying to monetize the free version using providers such as AdMob and RevMob. The trouble is that even though I have tested the game on two low capability machines, The Alcatel 951 and the LG E400, the Play site refuses to admit that tha application is compatible with these telephones. Consequentially, the number of devices that my game can deploy to is severely limited.

I discovered that setting certain options such as the hardware camera autofocus feature to optional increased the compatibility matrix by more than 400 devices but the Alcatel and the LG were both still excluded, even though I have solid proof that the game runs on these devices like a charm.


To set the autofocus feature I used:
  <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

Finally I have added optional feature requests for network location and wifi to increase compatibility to just over 2000 devices but still not my two test phones!!


  <uses-feature android:name="android.hardware.location.network" android:required="false" />
  <uses-feature android:name="android.hardware.wifi" android:required="false" />

This story is obviously set to run and run.

LATE BREAKING NEWS:
Phew, fixed it.. here is my working app manifest for simple Augmented Reality systems:



<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="my.domain.mygame" android:versionCode="10" android:versionName="1.02">
  <uses-sdk android:minSdkVersion="2" android:targetSdkVersion="14" android:required="false" />
  <application android:label="mygame" android:icon="@drawable/icon" android:name="mono.android.app.Application">
    <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
    <activity android:name="com.revmob.ads.fullscreen.FullscreenActivity" android:configChanges="keyboardHidden|orientation" />
    <activity android:alwaysRetainTaskState="true" android:configChanges="keyboard|keyboardHidden|orientation" android:icon="@drawable/icon" android:label="mygame" android:launchMode="singleInstance" android:theme="@style/Theme.Splash" android:name="mygame.MyGameActivity" />
    <activity android:label="@string/instructions" android:name="mygame.instructions" />
    <activity android:alwaysRetainTaskState="true" android:configChanges="keyboard|keyboardHidden|orientation" android:icon="@drawable/icon" android:label="mygame" android:launchMode="singleInstance" android:theme="@style/Theme.Splash" android:name="mygame.MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="2147483647" android:authorities="my.domain.mygame.mono.MonoRuntimeProvider.__mono_init__" />
  </application>
  <supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" android:largestWidthLimitDp="4096" />
  <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
  <uses-feature android:name="android.hardware.location.network" android:required="false" />
  <uses-feature android:name="android.hardware.wifi" android:required="false" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

No comments: