2012-12-18 25 views
7

Mam aplikację, która powinna być obsługiwana na ogromnej liczbie urządzeń, a jednak po przesłaniu jej do Google Play jest obsługiwana tylko 3 (z 2263).Obsługiwane urządzenia są wyjątkowo niskie.

Mój manifest wygląda następująco (minus Działalności):

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="MYPACKAGE" 
android:versionCode="101" 
android:versionName="@string/app_version" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="15" /> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="com.android.vending.BILLING" /> 
<uses-permission android:name="android.permission.CAMERA" /> 

<uses-feature android:name="android.hardware.camera.any" /> 

<supports-screens 
    android:anyDensity="true" 
    android:largeScreens="false" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:xlargeScreens="false" /> 

<application 
    android:name=".MYApplication" 
    android:hardwareAccelerated="true" 
    android:icon="@drawable/app_icon" 
    android:label="@string/app_name" 
    android:theme="@style/RPTheme" > 

    ACTIVITY DECLARATIONS ARE HERE 

    <service android:name="com.parse.PushService" /> 

    <receiver android:name="com.parse.ParseBroadcastReceiver" > 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <action android:name="android.intent.action.USER_PRESENT" /> 
     </intent-filter> 
    </receiver> 
    <receiver android:name="MYPACKAGE.PushReceiver" > 
     <intent-filter> 
      <action android:name="1" /> 
     </intent-filter> 
    </receiver> 

</application> 

Również mam wymienić moje imię pakiet z mypackage.

Teraz, gdy patrzę na to ponownie, być może ma to związek z Androidem: hardwareAccelerated = "true"? Ale rozumiem, że deklaracje XML są ignorowane przez poziomy API, które ich nie obsługują.

Ktoś ma jakieś pomysły na temat tego, co się tutaj dzieje? Czy gdziekolwiek sklep Play szuka jakich urządzeń jest obsługiwanych?

Dzięki za pomoc!

EDIT:

Wygląda na to, że to rzeczywiście android.hardware.camera.any, jak wskazano poniżej. Zastąpiłem to:

<uses-feature 
    android:name="android.hardware.camera" 
    android:required="false" /> 
<uses-feature 
    android:name="android.hardware.camera.front" 
    android:required="false" /> 

Moja aplikacja ma teraz 2k + obsługiwane urządzenia.

Odpowiedz

12

Spróbuj zakomentowanie lub zmienia:

<uses-feature android:name="android.hardware.camera.any" /> 

Równowartość wartość PackageManagerwas added in Android 4.2. I this issue mówi:

Jednak Sklepie Play potrzebuje nowej logiki, aby zapewnić wsteczną kompatybilność urządzeń ze starszymi wersjami systemu operacyjnego, który nie jest jeszcze gotowy.

Dopóki to wsparcie nie będzie działać, nie używaj "android.hardware.camera.any", ponieważ aplikacje, które tego wymagają, nie będą jeszcze mogły być instalowane na urządzeniach z wersjami sprzed 4.2.

To zostało napisane miesiąc temu, a twoje doświadczenie sugeruje, że tak jest nadal.

+0

To było to. Dzięki! –

Powiązane problemy