I'm a new Android developer using Android Studio. I've purchased a phone to test my app. My app runs SDK API 27 and higher (i.e., OS Oreo 8+).
My specific question is why does my Android version 9.0 phone have SDK API of 22 rather than SDK API 28?
I purchased a phone that says its running Android 9.0 (Settings->About Phone->Android version = 9.0)
According to wikipedia and other links Android 9 should have SDK APIs of 28.
When I connect the device to Android Studio with USB Developer Mode enabled, I get a red (!) error that Android 9T (minds(API 27) > deviceSdk(API 22))
Additionally, I cannot download my app from Google Play as google play also thinks the API level is too low.
Another interesting thing about the phone is that it won't let me upgrade to Android 10, which I thought it should be able to. When I click the Android 9.0, nothing happens, i.e. 10.0 isn't available.
Sorry! Because of my reputation, I can't comment. As #Mehran B said you may be scammed. First, find IMEI Number of your mobile from the settings. Then go to here
. Type your IMEI Number there and check info like Company Name, Model that matches with your physical device.
Hope helpful!
Related
I have a project that has min sdk 16 and I would like to add support to instant apps. Is it possible to add that feature to mine project? I also detect that I can't create a new project with option "Include Instant App support" to sdk < 23:
So I suppose that also not possible to add that feature to the existing project with min sdk < 23.
I will be very grateful if the answer will contain a link to the information.
The Android App Links feature was introduced in Android 6.0 and lets
users tap on a web link to open your app (if it is already installed).
Instant apps leverage the same app links feature to create HTTPS URLs
that launch activities in your instant app.
Courtesy goes to philo's Answer
There's no required minimum. 15 is fine. But FYI, your app won't run
on 15. The Instant Apps runtime itself isn't compatible that far back.
At the moment, that only goes back to 23 (but we're working on that).
According to the Android Instant Apps: Android Instant Apps supports the latest Android devices from Android 6.0 (API level 23) through Android O, across more than 40 countries. We'll be rolling out to more devices and countries soon, including expanding support to Android 5.0 (API level 21) devices shortly.
FYI : https://developer.android.com/topic/instant-apps/faqs.html
This page teaches you how to build and run a very simple instant app using Android Studio.
Android Instant App
With reference SO answer and android documentation Currently it has been fixed with android studio 3.1 Canary 5
Fresh start with Android Studio, I created a new Project and added checked both Phone and Tablet and Wear. I chose MinSDK 19 for mobile and 20 for Wear (there is no option here). As I try to compile and run this project on my phone (Running 4.4.4 API Level 19), it just fails with the error INSTALL_FAILED_OLDER_SDK.
I have tried all possible permutation-combinations of API levels for the Mobile/Wear projects but I can't get it either compile/run on the device.
Any thoughts?
you cannot put your app as SDK 20, that needs to go in your wear app, leave your main app at 19
One of the requirements of Google+ platform for Android on the developers.Google.com site is that you must have
A physical device to use for developing and testing because Google Play services can only be installed on an emulator with an AVD that runs Google APIs platform based on Android 4.2.2 or higher.
Since i do not have a Android powered device, what emulator if any can i use in place of this?
This is to say, if you wnat to test GooglePlay service on an AVD, you should create a AVD with a minimum API level 17 (4.2.2)
API level is an option you must configure when you create a new AVD.
I know that there are many question on this, and I also read this page. However, I am still confused about the exact choices.
If I have a mobile phone that runs Android 2.3.6
I know that the Minimum Required SDK should be the lowest version of Android that my app supports.
So for example I will choose Android 2.2 or less than that value, say Android 1.5
The confusing parts Target SDK and Compile with
I have installed these below: (there is no Android 2.3.6 available in the SDK manager)
Android 4.2.2 (API 17)
Android 3.0 (API 11)
Android 2.3.3 (API 10)
Android 2.2 (API 8)
Is the Target SDK should be set to the maximum which is Android 4.2.2, irrespective to what my mobile phone uses; which is Android 2.3.6 ?
choosing Android 4.2.2 will cover all phones below it? is that right?
Or
Is it should be set to the exact/nearest value as my phone. Here the available one is Android 2.3.3? But not exceed my mobile phone Android 2.3.6
Is Compile with must be set to the maximum Android 4.2.2 or what?
Is the Target SDK should be set to the maximum which is Android 4.2.2,
irrespective to what my mobile phone uses; which is Android 2.3.6 ?
That is up to you, but its always recommended to use the latest sdk as a target.
It just says that the application will work between min and target sdk, but tested for the target sdk alone, so if there are any compatible settings system must take care of it.
choosing Android 4.2.2 will cover all phones below it? is that right?
Your app always covers from Min-SDK to Max-SDK. If the Min-SDK is 1 and Max-SDk is not set, then your app supports all the APIs.
Is it should be set to the exact/nearest value as my phone. Here the
available one is Android 2.3.3? But not exceed my mobile phone Android
2.3.6
Must be the latest SDK
Is Compile with must be set to the maximum Android 4.2.2 or what?
Its just your choice of which SDK to compile your app with. But better go with the Target-SDK which in turn is the Latest.
I've always set my Compile with to the be same as Target SDK.
Target should be what you have tested and architected your app to handle. As Android evolves API behaviors can change, like the Serial/Parallel/Serial nature of default AsyncTask (see: Running multiple AsyncTasks at the same time -- not possible? and http://commonsware.com/blog/2012/04/20/asynctask-threading-regression-confirmed.html) which depended on your app's Target API and on the device API. Fun times for us discovering it then.
In addition various APIs get depreciated as well so going with the most recent API forces you to only use what being currently maintained.
I have downloaded the Android SDK(which i think has no version, it is standard). After installing Android SDK, Android SDK Manager comes which by default selects 3 things to be downloaded (1)Android SDK tools(2)Android 4.0.3 (API 15) and the things under it like documentation, samples etc (3)Google USB driver But at present i am having book on Android 3, so should i deselect the second option i.e. Android 4.0.3 (API 15) and select all things under Android 3.0 (API 11) or keeping Android 4.0.3 will be OK for Android 3.I know there are tutorials for Android 4.0.3 on Web so why should i go for Android 3 because i find it easy through books and i got Android 3 here in my place and still no Android 4. So what should i do?
You can install everything. I would recommend to install the API level you want to develop for. But it doesn't hurt (but wastes disk space) to install everything.
Sidenote: Android 3.0 is for tablets, 2.x for older and 4.x for the latest Android Smartphone devices.
You should select the API level that you will target. For example, I am writing an application for API level 7 (Android 2.1.x), so I've got that version installed on my machine. Of course, you can have more than one API level installed, so it is safe to install any combination (for example 3.0.x and 4.0.4 simultaneously - see last paragraph for the reason).
Once you've got a few API levels installed, Eclipse will allow you to change the target API for your project to any of the versions you have installed. The same applies for the command-line project creation.
There is actually one good use-case for installing a version newer than the one you are targeting in addition to the one you use: testing. You can create an emulation environment for a newer version of the API to ensure that your application does not crash and burn when the API levels do not match. If we were to extend my above example, a sensible set of levels to install is 3.0.x, 3.2, and 4.0.4. You can target the initial release of Honeycomb (unless you need anything from the later versions), and test with both the latest Honeycomb and Ice Cream Sandwitch.