Я вагаюся із цим запитанням, тому що, схоже, багато людей мають подібну проблему, і все ж я не знайшов рішення, яке б вирішило мій конкретний приклад.
Я розробив додаток для Android ( посилання на власне додаток ) і завантажив його в магазин Play. Магазин Play каже
"This app is incompatible with your XT Mobile Network HTC HTC Wildfire S A510b."
Звичайно, це телефон, на якому я розробляв додаток, тому він повинен бути сумісним. Деякі люди з іншими пристроями кажуть, що він повідомляє про сумісність, інші кажуть, що він повідомляє про несумісність, але я не можу знайти тенденції. (Мабуть, я не знаю дуже багато людей з пристроями Android.)
Я спробував наступне:
переміщення великого файлу з
res/raw
каталогу, як пропонується у цій відповіді . Єдиним файлом був текстовий файл розміром ~ 700 кБ, але я перемістив йогоassets/
без явних змін.додавши наступні два твердження про особливості:
<uses-feature android:name="android.hardware.faketouch" /> <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
думаючи, що, можливо, мій телефон не претендує на підтримку звичної
android.hardware.touchscreen
функції, але знову ж таки, без явних змін.
Завантажуючи файл .apk у магазин Play, єдиним фільтром, про який він повідомляє як активний, є android.hardware.faketouch
функція.
Далі наведено результати aapt dump badging bin/NZSLDict-release.apk
:
package: name='com.hewgill.android.nzsldict' versionCode='3' versionName='1.0.2'
sdkVersion:'4'
targetSdkVersion:'4'
uses-feature:'android.hardware.faketouch'
uses-feature-not-required:'android.hardware.touchscreen'
application-label:'NZSL Dictionary'
application-icon-160:'res/drawable/icon.png'
application: label='NZSL Dictionary' icon='res/drawable/icon.png'
launchable-activity: name='com.hewgill.android.nzsldict.NZSLDictionary' label='NZSL Dictionary' icon=''
main
other-activities
supports-screens: 'small' 'normal' 'large'
supports-any-density: 'true'
locales: '--_--'
densities: '160'
а для повноти - мій файл маніфесту:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hewgill.android.nzsldict"
android:versionCode="3"
android:versionName="1.0.2">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
<uses-feature android:name="android.hardware.faketouch" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<application android:label="@string/app_name"
android:icon="@drawable/icon">
<activity android:name="NZSLDictionary"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".WordActivity" />
<activity android:name=".VideoActivity" />
<activity android:name=".AboutActivity" />
</application>
</manifest>
У розділі "Доступність пристрою" магазину Play я бачу, що всі пристрої HTC, включаючи Wildfire S, підтримуються, за винятком "G1 (форель)" і "Touch Viva (опал)", якими б вони не були. Насправді я бачу, що як "Wildfire S (marvel)", так і "Wildfire S A515c (marvelc)" перераховані як підтримувані, але мій "Wildfire S A510b" конкретно не згадується. Чи може такий тип ідентифікатора підмоделі так важливий? Я зміг завантажити на свій телефон кілька інших програм із Google Play без проблем.
Єдине, що я не зробив на даний момент, це зачекайте 4-6 годин після завантаження останньої версії (як у цьому коментарі ), щоб побачити, чи все ще там сказано, що вона несумісна з моїм телефоном. Однак на сторінці магазину Play зараз відображається 1.0.2, який є останнім завантаженим мною.
handleSilentException
метод, щоб повідомляти мовчки. Це, принаймні, повідомить вам, над яким обладнанням працює додаток.