Android uses-feature in tablet - android

I have android app with next permissions
<!-- Permissions -->
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<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.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
But in my samsung tablet i've got This app is not comptable with your tablet. Android 4.2.2
What "uses-feature" I should set as
android:required="false" ?

I'm not sure if the Samsung tablets can vibrate or not, but if they can't, you will need to switch
<uses-permission
to
<uses-feature
And use the required flag. If it is not required, it won't be necessary and will not be filtered because of it. You will have to handle this for tablets that can't vibrate in code if part of your app handles vibrate. If it is not vibrate, then another one of these will be causing the issue and will need to change to uses-feature.
See Uses-Feature
On a secondary note, you should also check you're supporting the larger screen sizes with and not accidentally omitting xlargescreens from the manifest.

Related

How to Support Application On Device without Camera Feature

I have an android application currently on the play store. Although the device runs perfectly well on all devices, I was trying to enable support for some Zebra devices that do not have camera support. Because the application has a camera feature and the device does not, the application shows not supported in the play store.
My question is, is there any way for me to enable the app for use on that device or bypass/not-require the camera permission for that specific device. I did research on this but found minimal information. So to sum it up, I am looking for a way to support my application on a device with no camera feature, and only use the camera permission if the device has a camera. Any help would be appreciated!
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.25" android:installLocation="auto" package="com.some.package" android:versionCode="52">
    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="32" />
<application android:label="CM Mobile NG" android:theme="#style/HideTitleAndActionBar" android:icon="#drawable/icon_app" android:hardwareAccelerated="true"></application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>

push notifications not received on Xiomi when app not running

My app able to receive push notification when app is not running on Motorola with Lollipop, But Xiomi with Lollipop unable to receive notification if app is not running.
Anyhow if app is opened it is able to receive notifications.
Is there any problem in Xiomi phones ?
Here is my manifest file permissions:
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.example.localmarket.permission.C2D_MESSAGE" />
<permission
android:name="com.uignet.localmarket.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
I just found that Xiomi phones has a setting "Auto Start" for the apps to receive notifications in the background. It is disabled by default. That's the reason its not receiving notifications. Just enable it make it work. and also enable notifications for the apps installed.

How to access the phone's screen like "Chromecast APP"?(Mirroring)

I want make mirroring without WiFi-direct.
like chromecast mirroring function.
Chromecast application can access screen without
rooting&wifi-direct.
I found "capture_video_output" permission at API 19, but I can`t found any API.
So, I decompiled chromecast, but it hasn't "capture_video_output" permission.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
Is it right way for mirroring?(wifi-display)
How can I make mirroring application?
Or where can I get this info?
You can use Presentation APIs to mirror a view within your app (can be a virtual view) to a chromecast device if mirroring is happening. Otherwise, there is no API for you to mirror phone's screen to a chromecast device.

My app is not available for Kindle Fire HD, and I don't know why

I have an app on the Amazon App Store, and it has recently come to my attention that users with the Kindle Fire HD are not seeing it on their store. It is available for the 1st-gen Kindle Fire, so I assume this is some kind of filtering on the part of the App Store. I'm guessing that something in my manifest is marking it as incompatible with the Fire HD, but I have no idea what that could be. Here is all of the relevant hardware configuration info from my manifest:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<uses-feature android:name="android.hardware.touchscreen" >
</uses-feature>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
Can anyone see any problems there that might make Amazon think it is incompatible with the Fire HD?
According to this Kindle Fire guide, you aren't supposed to use the READ_PHONE_STATE permission. Maybe your app got in before they started doing this check, but they apply it now to the new devices?
But if I were you'd I'd contact them and see if you can get the reason directly.
Some permissions implicitly add specific <uses-feature> entries to your manifest. While READ_PHONE_STATE is not listed in the Google docs, MODIFY_PHONE_STATE is listed as one of the permissions that implicitly triggers the android.hardware.telephony feature, so I wouldn't be surprised if READ_PHONE_STATE also does the same. I would assume this is the reason why your app is filtered for the Kindle Fire HD. (And it should be filtered for the Kindle Fire as well, but I'd assume it used to not be and they don't want to change it for legacy reasons).
You can try resubmitting with either that permission removed, or adding an explicit line to mark the telephony feature as optional:
<uses-feature android:name="android.hardware.telephony" android:required="false" />

How to see that exacly is missed on device when Android Market filters out apps?

I have Archos tablet which cannot access my app from the Market because it filters it out from the search. The app uses-feature are very unstrict, SDK version should be OK, so I have no ideas what else is missing.
Is there a way to get Market (or 3rd party app/site) to say what hardware/software features are present on device and what are required by Market filters for my app?
my requirements are
<uses-feature android:name="android.hardware.wifi" android:required="true"></uses-feature>
<uses-feature android:name="android.hardware.location" android:required="true"></uses-feature>
<uses-feature android:name="android.hardware.location.network" android:required="false"></uses-feature>
<uses-feature android:name="android.hardware.location.gps" android:required="false"></uses-feature>
<uses-feature android:name="android.hardware.touchscreen" android:required="true"></uses-feature>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<uses-permission android:name="android.permission.READ_LOGS"/>
Furthermore, Market says that Archos 101 internet tablet matches, but 70 not (which is basically the same but smaller)
Did you use any telephony features? phone calls/sms? My guess is that the tablet doesn't support such features that causes it to be filtered. to "bypass" that you can try adding this in the permissions
<uses-feature android:name="android.hardware.telephony" android:required="false" />
android:required is set to true implicitly to say that the app cannot function without this permission which should most probably be the reason why the app isn't shown.

Categories

Resources