I have following configuration in Manifest file :
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
I tried to run my app in Nexus 7 emulator, but it does not run in it. But it opens another emulator. How to run my application in Nexus 7 ?
Some permissions imply a <uses-feature> element look here to see what you need to add as an optional feature.
It will choose the AVD most compatible to the app even-though all your AVD might be compatible. But you are allow to choose which AVD you want to use and force your app to run on specific AVD.
If you are using Eclipse, then:
Right Click -> Run As -> Run Configurations
In the "Target" tab, you can choose to run on all active AVD or a specific AVD.
I think perhaps the problem is that the App requesting permission to things that don't exist on Nexus 7 Tab.
This permission in your manifest implicitly declares the "android.hardware.telephony" feature.
Refer to the document: http://developer.android.com/guide/topics/manifest/uses-feature-element.html#market-feature-filtering
<uses-permission android:name="android.permission.CALL_PHONE" />
Try this, keep the permission, but declare the "telephony" feature as false.
<uses-feature android:name="android.hardware.telephony" android:required="false"></uses-feature>
Related
This question have a lot of responses already but none of it helps me
I created an Android app and it says that I can't install it on tablet. If I run project from Android Studio on tablet it works perfectly.Also it doesn't find the app by name only on the tablet.
On desktop when open my app's page:
On tablet when open my app's page using a direct link:
My tablet has Android 4.4.2
in app gradle file:
minSdkVersion 16
targetSdkVersion 23
in app manifest I am using:
<!--for IMEI -> is not a must to have gsm-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--is not a must to have autofocus or even camera-->
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<!--to support all screens-->
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
"For your app to be showcased in the 'Designed for tablets' list in the Play Store, you need to upload at least one 7-inch and one 10-inch screenshot. If you previously uploaded screenshots, make sure to move them into the right area below." This can be found when you are setting the distribution for your app on google play. If you do not provide a screenshot for this screen, Google will set your app just for phones.
Does your tablet have gps? If not you should probably add:
<uses-feature android:name="android.permission.ACCESS_FINE_LOCATION"
android:required="false" />
And also try adding xlargeScreens to true.
Check if your tablet is set in supported devicess.
Go to Play Dev Console, then click on APK, then under supported devices click 'see list' and navigate to Samsung to check if your device is set.
Alternatively in same APK section click on your current app version and in popup, check if your language (and region) are supported in Localizations section.
Both cases might checkout to be OK, but never hurts to check :)
There is an application which can not be runed on particular devices. I have this in Manifest.xml:
<uses-sdk android:minSdkVersion="8" />
And it works on HTC sensation with Android 4.0, but for some reason it is not compatible with Samsung Galaxy Tablet 2 7.0. (Android 4)
When I upload it in Android market, also I can see that the Tablet is not supported.
I can not understand the reason, can you please let me know why?
Manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
package="test.newversion"
android:versionCode="1"
android:versionName="2.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:icon="#drawable/app_logo"
android:label="#string/app_name" >
<uses-library android:name="com.google.android.maps" />
</application>
</manifest>
Some permissions implicitly add requirements on the hardware. For example the docu for CAMERA says:
This will automatically enforce the manifest element for all camera features. If you do not require all camera features or can properly operate if a camera is not available, then you must modify your manifest as appropriate in order to install on devices that don't support all camera features.
If you don't need all, add explicit uses-feature elements with android:required="false"
try to give a luck to the following in manifest if not yet added
<supports-screens android:smallScreens="false"
android:normalScreens="true" android:largeScreens="true"
/>
change it according to your criteria
Most likely it is the permissions that are creating a filter which makes the marketplace removes some Tablets.
For e.g. you have the PHONE permissions in your manifest and if the Tablets do not have a phone capability, then they will not be compatible. As Henry suggested, you might look at the uses-feature with the android:required="false".
I suggest you review the AndroidManifest.xml carefully and proceed from there.
I am Developing an Android Application using Cordova-2.2.0, Android sdk I'm using is 4.1 and my application working Fine.
when I tried to test this Application on Android 2.2 and 2.3.3 I'm getting some log indicating like below and and my application page is not opening.
LOG is:
01-02 15:42:08.166: D/CordovaLog(486): Falling back on PROMPT mode since _cordovaNative is missing.
01-02 15:42:08.166: D/CordovaLog(486): file:///android_asset/www/js/ext/cordova-2.2.0.js: Line 1032 : Falling back on PROMPT mode since _cordovaNative is missing.
01-02 15:42:08.166: I/Web Console(486): Falling back on PROMPT mode since _cordovaNative is missing. at file:///android_asset/www/js/ext/cordova-2.2.0.js:1032
I don't know why it is appearing and how to solve it.
There is nothing to fix. When the PhoneGap framework detects that you are running on a version of Android that does not support the regular way of passing information between the Java and JavaScript code it reverts back to the safer PROMPT mode.
seems a problem with the connection to your native code or proof Android project in Eclipse project clean and recompile to see what happens, or be sure to put the libs folder in your project with the corresponding. jar PhoneGap
#dagavi90
Add this to your manifest:
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:resizeable="true"
android:anyDensity="true"
/>
<uses-permission android:name="android.permission.CAMERA" />
<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.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
I published my APK to Android market. I can search it via https://play.google.com/store/search?q=[package name], but I can't install it on my Nexus One device which running Android OS 2.3.6, the popup shows not compatible with your device. The manifest file is configured as below:
<supports-screens
android:largeScreens="true"
android:smallScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:anyDensity="true"
/>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
What problem in my configuration made My Nexus One device is filtered?
There's nothing wrong with your manifest; I'd wager you have Copy Protection enabled. From the documentation:
To copy protect an application, set copy protection to "On" when you
configure publishing options for your application. Google Play will
not show copy-protected applications on developer devices or
unreleased devices.
Since the Nexus One is a developer device, it will show as incompatible. I ran into this same issue on my Galaxy Nexus.
Add this to your manifest
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />//=======> the target version is your wish(> 10)
I Have 2 htc tattoo, and I have the next problem, I've made an app and when I upload the app to the market the app is showing on one tattoo but not on the other. Any Ideas?
I have activated all available markets, and deactivated the protections.
My manifest has the next configuration:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />
<supports-screens android:largeScreens="true"
android:normalScreens="true" android:smallScreens="true"
android:anyDensity="true" />
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="7"/>
Just to be sure, as unlikely at it is-you're not running Froyo (2.2) on your htc tattoo? Its API level is 8 as I'm sure you're aware.
Check if you have a folder named /lib in your apk, its a weird thing the Market application checks for, and if it exists your application won't display.
Ok the problem with tattoo is that it do not support autofocus and it is necesary add in the manifest: