Application does not supported by mobile device - android

My application is available in Android market and supported Android version 2.2+. But when i open Android market using Samsung SPH-M820 device. It doesn't show application in there. But when i enter full url and try to download app, It shows error message "app not compatible with your device". While device specifications are here.
What is the issue?
Update: Manifest file is added:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="packageName"
android:installLocation="auto"
android:versionName="Version1"
android:versionCode="10">
<uses-sdk android:minSdkVersion="8" />
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
<!-- permissions -->
<permission android:name="packageName.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="packageName.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- This app has permission to register and receive message -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
<application android:icon="#drawable/icon" android:label="#string/app_name"
android:theme="#android:style/Theme.NoTitleBar" android:debuggable="false">
<receiver android:name=".PushIncidentReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<!-- Receive the actual message -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="packageName" />
</intent-filter>
<!-- Receive the registration id -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="packageName" />
</intent-filter>
</receiver>
<activity android:name=".SplashActivity" android:label="#string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps" />
</application>
</manifest>

That link doesn't look like it leads to any device specifications, but rather forum boards. In addition, what we really need is your AndroidManifest.xml file. While this response doesn't answer your question directly since we don't have access to your AndroidManifest.xml, hopefully this will help guide you or others to figure out what's wrong.
You can see what devices your application supports by logging on to your developer account at http://market.android.com/publish. Choose your application, and you will see the following section on the next page underneath "Publishing options":
That shows you requirements you have set up in the AndroidManifest.xml file of your application. In addition, you can even click "Show devices," and you will see a list of supported and unsupported devices for your application, such as the following:
You can see that my application doesn't support two HTC phones. In addition, you can even prevent specific phones that do meet your requirements by choosing to exclude them in the list.
If you want your application to work on a specific phone, you will have to modify your AndroidManifest.xml or application itself to have more lenient requirements so your phone can satisfy them.

Related

Android device not showing alert in response to remote push notification when the app is not running

I saw many other questions on here saying if an app is force stopped it won't receive notifications.
However, I AM NOT force stopping this app. I am just hitting the back button. I have also tried just hitting the home button. In both cases no alerts.
However, if the app is running in the foreground the PushReceived event fires and the AData.Message shows the correct text. So, it would appear that remote notifications are being sent to the device, it's just that the app is never woken up to process them.
The app is written in Delphi XE8 and I have tested this on KitKat and JellyBean, both with the same results.
I suspect the problem is in the Android Manifest file. A copy of which is below. Beyond this I am not sure where to go. As I understand it when a push is received it is supposed to run a small bit of code in the Firemonkey framework that displays the push message without starting the full app.
I am using the app described in this tutorial to try to figure out why it is not working in my live app. This used to work as I expected it to in XE7.
http://docwiki.embarcadero.com/RADStudio/XE8/en/Mobile_Tutorial:_Using_Remote_Notifications_%28iOS_and_Android%29
I am using the Engagement Tab on the Kinvey dashboard to send the test pushes, so I assume the server side is correct. And as I said they are working with the app in the foreground.
Gary
<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.gwsystemsdns.net.pushtest"
android:versionCode="1"
android:versionName="1.0.0"
android:installLocation="preferExternal">
<!-- This is the platform API where NativeActivity was introduced. -->
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="11" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="net.gwsystemsdns.net.pushtest.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="net.gwsystemsdns.net.pushtest.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-feature android:glEsVersion="0x00020000" android:required="True"/>
<application android:persistent="False"
android:restoreAnyVersion="False"
android:label="PushTest"
android:debuggable="True"
android:largeHeap="False"
android:icon="#drawable/ic_launcher"
android:theme="#style/AppTheme"
android:hardwareAccelerated="true">
<!-- Our activity is a subclass of the built-in NativeActivity framework class.
This will take care of integrating with our NDK code. -->
<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
android:label="PushTest"
android:configChanges="orientation|keyboard|keyboardHidden"
android:launchMode="singleTask">
<!-- Tell NativeActivity the name of our .so -->
<meta-data android:name="android.app.lib_name"
android:value="PushTest" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.embarcadero.firemonkey.notifications.FMXNotificationAlarm" />
<receiver android:exported="true" android:name="com.embarcadero.gcm.notifications.GCMNotification" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="net.gwsystemsdns.net.pushtest" />
</intent-filter>
</receiver>
</application>
</manifest>
<!-- END_INCLUDE(manifest) -->
My Push Received event demonstrating the reception of foreground pushes.
procedure TfrmMain.PushEvents1PushReceived(Sender: TObject; const AData: TPushData);
begin
Memo1.Lines.Add('Push Received');
Memo1.Lines.Add('Push = ' + AData.Message);
end;
I found the problem. This line was missing from the XE8 manifest template file:
<%activity%>
<service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />
<%receivers%>
</application>
It goes into the AndroidManifest.template.xml file like this (immediately following the <%receivers%> tag:
<%activity%>
<service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />
<%receivers%>
<receiver android:name="com.embarcadero.firemonkey.notifications.FMXNotificationAlarm" />
</application>
As per Embarcadero's docwiki.

GCM Notifications are ignored on the device

I'm trying to do some GCM notifications on Android. I've come as far as having something happen on the device.
NotificationService is throwing the following exception:
12-11 16:02:19.650 202-380/? E/NotificationService﹕ Ignoring notification with icon==0: Notification(contentView=org.***.**.reciever/0x1090098 vibrate=null,sound=null,defaults=0x0,flags=0x0)
Here is my manifest for reference:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.***.**.reciever"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<permission android:name="org.***.**.reciever.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
<uses-permission android:name="org.***.**.reciever.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/***"
android:name=".***Application" >
<meta-data android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<activity
android:name="org.***.**.reciever.MapActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="util.GcmBroadcastReciever"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="org.***.**.reciever" />
</intent-filter>
</receiver>
<service android:name="util.GcmIntentService" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="***"/>
</application>
All the *. are just the masked package name, they are all the same.
Any idea what I'm doing wrong?
Also, is the notification supposed to pop up on the device without any extra code or does the app have to ask the OS to show a notification on the screen when the GCM push arrives? I think i read something about Android doing this part differently from iOS.
Figured it out, it's not the actual push message that's causing the issue as i thought. So i was barking up the wrong tree for a couple hours.
It turns out it was the actual notification that had an issue because it was demo code from Google >.<
Replaced with proper code -> working.
Thanks for your time!

unsupported devices on Google Play Console - Nasoni D'italia

I do not understand why there are some devices not supported..
this is my manifest..
i think the problem depends from minsdk or targetsdk or screen resolution but i don't know where is the problem.
Generally devices unsupported have small screen resolution.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="it.ankic.nasone"
android:minSdkVersion="11"
//----------------------------------------
>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<supports-screens
android:largeScreens="true"
android:xlargeScreens="true" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
//-------------------------------------//
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
//----------------------------------------//
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="app" android:host="nasone"/>
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDaRR2jB_mVyoDe31KFfjXyBiobfGq6sbc"/>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<permission
android:name="it.ankic.nasone.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="it.ankic.nasone.permission.MAPS_RECEIVE"/>
</manifest>
android:minSdkVersion="11"
android:targetSdkVerion="17"
<supports-screens
android:SmallScreens="true"
android:largeScreens="true"
android:xlargeScreens="true" />
Android Sdk Version tags will check the device os sdk version . and also it will check the permissions for screen supports. four types of screen supports is there. if u release the App in Google play means , then it check the android manifest and device configuaration if it,s ok then only the app will display for thaT Mobile.
Also Users Features tag will affect the App supportabily to Device.
I think the problem is this:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
because Google Play filter device which support this uses-feature. If the device does not support your glEsversion, Google Play does not propose it on the store.
Try to remove it and give me a feedback.

Why is the error "Unfortunately APP_NAME has stopped" appear even before starting the application?

I have this issue that I could not figure out the reason why. I'm aware that there are many similar question regarding this error in Stack Overflow but I could not find any solution to my problem as I do not have any logcat to the error as the error occured even before I start my app.
My application is running well, but somehow, after restarting the phone, without starting the application, the error "Unfortunately APP_NAME has stopped" appeared. Can anyone tell me what may have been the cause and how can I debug and fix this?
Thanks in advance.
Update :
Link to my manifest : http://pastie.org/pastes/6332771/text?key=ay9snpcgwce9cgoxsl5tzg
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.honey"
android:versionCode="1"
android:versionName="1" >
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17" />
<permission android:name="com.test.honey.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.com.test.honey.permission.C2D_MESSAGE" />
<!-- App receives GCM messages. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_FRAME_BUFFER"/>
<uses-permission android:name="android.permission.SET_ALARM" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- App receives GCM messages. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<application
android:icon="#drawable/mj_icon"
android:label="#string/app_name"
android:theme="#android:style/Theme.Light.NoTitleBar"
android:largeHeap="true">
<uses-library android:name="com.google.android.maps" />
<activity android:name="com.test.honey.Splash" android:label="#string/app_name" android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--ACTIVITIES HERE-->
<receiver android:name="com.test.honey.MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
<receiver android:name="test.honey.AlertReceiver" />
<receiver android:name="test.honey.SchedulerReceiver" />
<provider android:name="test.honey.database.DataProvider1" android:authorities="test.mycare1" />
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<!-- Receives the registration id. -->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.test.honey" />
</intent-filter>
</receiver>
<service android:name=".GCMIntentService" />
</application>
</manifest>
*I could not reveal the entire code as this is for work purposes. And I don't get to decide the content as this is project's requirement. Hope you guys understand.
Anyway, after some debugging, I got this logcat, despite my app runs well.
java.lang.RuntimeException: Unable to instantiate receiver
com.test.honey.MyCareStartupReceiver:
java.lang.ClassNotFoundException:
com.fireworks.momsapp.MyCareStartupReceiver
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2251)
at android.app.ActivityThread.access$1500(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException:
com.test.honey.MyCareStartupReceiver
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2246)
... 10 more
You can use eclipse debug perspective to debug the app using break points, how to is explained in this link Using DDMS + Android Mob for debug
Put the break point in oncreate() then add break points dynamically as u need :)
EDIT:
And BOOT_COMPLETE broadcast can be sent using adb shell am command i think, google it for more info. here is the link i got relted to this How To Test BOOT_COMPLETED Broadcast Receiver In Emulator it also works for device i hope.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_FRAME_BUFFER"/>
<uses-permission android:name="android.permission.SET_ALARM" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
So, you want to be able to write to the external storage, mount and unmount the SD card, access to the camera, send SMS, make phone calls, set alarms, read all the user's contacts AND access to the Internet. I can't think of any useful app that can need all those permissions.
May I know which kind of malware are you trying to craft?
Anyway, it may have something to do with the fact that you are using android.permission.RECEIVE_BOOT_COMPLETED, and you haven't set up a proper BroadcastReciever. Allow me to redirect you here.

App not supported by HTC explorer and samsung galaxy ace

I am not able to find my app from google play store for HTC explorer and sansung galaxy ace devices, I am supporting small screens as well for the app, still not able to find it on play store
My manifest looks like this:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.demo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
</uses-permission>
<uses-permission
android:name="android.permission.INTERNET"
android:protectionLevel="normal" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.GET_ACCOUNTS" >
</uses-permission>
<uses-permission android:name="android.permission.USE_CREDENTIALS" >
</uses-permission>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" >
</uses-permission>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" >
</uses-permission>
<uses-permission android:name="android.permission.CAMERA">
</uses-permission>
<supports-screens android:largeScreens="false" android:smallScreens="true" android:anyDensity="true" android:normalScreens="true" />
<application
android:icon="#drawable/appicon"
android:label="#string/app_name"
android:debuggable="true">
<service
android:exported="true"
android:name=".account.AuthenticationService" >
<intent-filter >
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="#xml/authenticator" />
</service>
<activity
android:name="abc.com.Screen"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" >
<intent-filter >
<action android:name="android.intent.action.MAIN" >
</action>
<category android:name="android.intent.category.LAUNCHER" >
</category>
</intent-filter>
</activity>
</application>
</manifest>
Please tell me if I am doing something wrong here.
I had the same problem. botteaap fix worked.
Add this to manifest
<uses-feature android:name="android.hardware.camera" android:required="false" />
and all worked fine.
it means that the application prefers to use the feature if present on the device, but that it is designed to function without the specified feature,
You likely need to declare camera autofocus as an optional feature (since you are requiring the camera based on the CAMERA permission). I haven't checked but it could be that those cheaper phones do not support auto focus.
For reference: http://developer.android.com/reference/android/hardware/Camera.html and
http://developer.android.com/guide/topics/manifest/uses-feature-element.html (set android:required to false)
There are several steps(pretty long steps) that can help you to verify which devices exactly can download and run your application:
Change or remove any permission in your manifest.
Build application with your release key.
Upload new .apk file to google play dev. console and activate it.
DO NOT PUBLISH it and switch to product details tab.
Check supported devices list via show devices link in Supported Devices section right under countries list. Here you can find list of all "google-known" android devices that can run your application with current permissions.
This way is pretty long, but this could help you.

Categories

Resources