Multiple APK's how does Play decide which to download - android

I am going to create a tablet APK, which will not have some functionality that my phone APK has.. that's basically the only difference, however since the tablet APK will have less permissions (no phone requirements) how do I make sure folks with PHONES are going to get the PHONE version of the APK?
IE, a table user will only get the version with no phone permissions, since their device doesn't support it, that I get.
But a phone user, could run the APK without the phone requirements, as well as the APK with the phone requirements, so how do I make sure that phone users get the PHONE version of the APK, using the multiple APK setup in Play?

Look at the documentation for the "compatible-screens" tag for the manifest file.

Related

How can I lock my apk android file to install only in specific brand device (e.g: manufacturer x but not manufacturer y)?

I need to develop a android and ios app for a customer and need to quote how long time it takes to lock the apk file to only install in their devices to be manufactured, but not sure how and the time consuming (hence the cost to do so..) to come up with this request.
Wondering what are the steps to proceed with that, how complex is that process and how long time it takes.
Any information is appreciated.
There is only one manufacturer of iOS devices. In all likelihood, it is not your customer.
On the Android side, what you want is not possible — you cannot, on your own, create an APK that can only be installed on devices from one manufacturer. An APK can be installed on any compatible device.
The manufacturer could make changes to their Android build that you could leverage, such as the manufacturer adding some custom feature string (e.g., com.manufacturer.hardware.this.is.so.fake), which your APK requires via a <uses-feature> element. Since other conventional hardware will not have that feature string, your APK will not be able to be installed on that hardware. Custom ROM developers and people who root their devices could add that custom feature string to their own devices, though, and still install your app. But, again, this sort of thing requires the manufacturer to take certain steps (e.g., add this custom feature string).

Google Play: Your device is incompatible with this version -> "No Carrier"

I can't find anything online for this.
A user mentioned that he couldn't download my App because Google Play wouldn't let him. So I bought the device the user has (Galaxy Tab 3) because I couldn't figure it out remotely.
I can't find the App in the Play Store on the device. If I log in with the same Google account, it tells me that my device is incompatible with this App. All the information I have is "No Carrier".
Could it be possible that if my App needs an Internet connection I can't download the App if the device doesn't have a Sim-Card or something?
Update:
I have another flavor of this app in the store. The only difference (manifest-wise) is that this app needs camera permissions. But even if I make those optional (setting 'required' to false), it doesn't help. Also the specific model 'GT-P5210' is not listed in neither of my Apps in the supported devices list (even though I can find the other app in the store with the device). Also I made sure that there are screenshots for every possible tablet size.
Also I can of course install the App from Android Studio.
in the google play console, under store listing
add some screenshots for "TABLET".
without that, google play will think that your app is not meant for Tablets (which Galaxy Tab 3 is classified under).
The error indicates that there is a requirement listed in the app's manifest for phone networking. You need a phone to use it.

All privileges app on Android from IntelliJ

I recently switched mobile phone operator and I brought my number with me. However, the number stored in the SIM, which is visible to Android, is incorrect (it is the number that was given to me before the switch over).
Somebody wrote a little app a few years ago that allows changing the number on the SIM:
https://github.com/fommil/MyPhoneNumber/blob/master/src/org/lytsing/myphonenumber/MyPhoneNumber.java
I have no idea how the original author ever got it to compile, I've needed to use reflection (as others have discovered).
But there is an additional problem: apparently this must be run by an app signed with the "system signature key": https://stackoverflow.com/a/6029410/1041691
There is IntelliJ documentation for signing Android apps, but I am failing to interpret/translate the (Eclipse) instructions for dealing with this fabled "system" key: https://stackoverflow.com/a/3651653/1041691
How do I run an app on my Nexus 5 with full access? (which is physically connected by USB)
How do I run an app on my Nexus 5 with full access?
You don't, except perhaps by compiling your own version of the Android OS from source, rolling that into a ROM mod, and installing that ROM mod. Then, the signing key will be your own generated one, and you can sign other SDK apps with that key to grant them access to system-level permissions.
You might be able to install some off-the-shelf ROM, if they publish their signing key, and I have no idea if any of them do. I certainly wouldn't.

Why does my app size on device differ than the APK or Play store size

I have a quite valid question from a user which I'm unable to get to the bottom of trying to understand why the size reported on Google Play store is different than the size reported on the device. My signed release APK size on my PC comes in at 3.8MB. Uploading to Google Play shows a similiar size. Looking at the app manager on the device however shows the following stats:
Total: 6.62MB
App: 6.51MB
Data: 112KB
This is not to do with Google Play enabled copy protection (as other similar questions sugget) as I get the same stats installing the signed APK or development APK.
The APK on the phone under /data/app is again 3.8MB and the files under /data/data/com.my.app come to another 100KB or so (presumably the 'Data' row above).
What is causing the discrepancy in stats?
EDIT: Researching this further, this is a common feature across many applications on my devices. Google Play reports one size and the device reports something generally in the magnitude 2 times greater. So good to know its probably not something I'm doing, but still curious what the reasoning here is as its frustrating to be accused by users of 'doctoring' the install size to appear smaller!
When installing an APK in android system, what's installed is the DEX file. Which contains your code, resources etc compiled as binaries. Your dex is generally the same size of your apk, unless you have resources not compiled in assets.
Well, we all know that. What's not widelly spread is that android SAVES your original apk too. Perhaps for reinstalling in case of errors or for some other reasons.
That's why the amount of memory of our apps is the double in system. It's the sum of the size of the original apk and the installed dex.
It is like every other software application which will be compressed initially and made as a single file to install and upon installing, it will extract all the files (code, assets i.e, the images, etc) in the phone. This is why your app will be more memory after getting installed in a phone.
In order to prevent this, make your app a server side and ask compulsory permission for Internet so that you can send the data without consuming more memory for the app.

How to know if my app is available in android market with all versions?

I uploaded an app built with 1.5 SDK into market, but someone told me they can not find it in the market in their phone. I do not know why, because I have test it in 2.1 emulator.
Then how to know if my app is available in android market with all versions, is there any url to test that?
There are a couple of Web front-ends available to the market where you can check if the app appears in principle. E.g. http://www.cyrket.com
Whether the market lists your app from a specific phone depends on the phone and the resources your app needs. E.g. if your app does not support small screens (you can set this in the manifest), the market won't list it for phones like the HTC Tattoo.
Apparently the sequence in which apps are displayed by the market also varies by phone, carrier and country. You can get the app "Market Enabler" which allows you to make your phone pretend it's in a different country, in order to check if your app displays fine for all country markets.

Categories

Resources