views:

153

answers:

3

I have an Android app that only needs internet access and would like to target API level 3 (1.5) to reach the broadest handset base. However, it appears that targeting API level 3 implicitly requires two additional permissions that are visible to users: modify sd card, and read phone state.

See: http://stackoverflow.com/questions/1747178/android-permissions-phone-calls-read-phone-state-and-identity)

So the connundrum, do I target API level 4 and turn away users running 1.5, or do I target API level 3 and turn away users who are upset that my app is requesting so many permissions that it shouldn't need?

What is the smartest thing to do here? Are there really a lot of users still limited to API level 3?

I appreciate any wisdom offered! Thanks!

A: 

According to this chart, Android 1.5 still makes up about 34% of the market. So you might want to take that into account.

Slapout
A: 

Currently 2.1 holds the largest market share at 37.2% , this is going to see an increase as more new phones come out and old phones get an upgrade , so until 2.2 comes out 2.1 is the best bet. In some ways is best to keep up with the updated versions where you can provide more features and your user base is always on the rise as Google tries to reduce fragmentation.

Android Platform | Percent of Devices

Android 1.5 | 34.1%

Android 1.6 | 28.0%

Android 2.1 | 37.2%

Chart

Source

Updated Chart :

alt text

I Still feel its better to code for 2.1 instead of 1.6 and 1.5 , before you had the added features , now you have nearly half the Android population.

Ravi Vyas
1.5 and 1.6 together have 62%. Of course 2.1 is going to get bigger, but if you aren't using any of the new features, do you really want to give up that many users?
Slapout
You could look at it that way, the other way to look at it is the number of users on 1.6 and 1.5 will reduce as time moves forward and newer versions come out , so do you want to stick with a reducing figure or an increasing figure.
Ravi Vyas
updated answer with latest chart :-)
Ravi Vyas
A: 

Providing an app that works with 1.6 will also give you the users of 2.1 and 2.2 for free, therefore Ravi Vyas argumentation is bit flawed.

If you don't need the newer features I would stick with 1.6(target level 4) and if you have some spare time create a new version of your app for target level 3 and set max and minSdk in the manifest to 3. This way you have support for the 1.5er people but nobody sees that there are two versions of your app in the market.

Janusz
Very interesting. So There is no question that I will support 1.5. To lose 34% of users off the bat makes absolutely no sense to me. But your suggestion sounds very compelling... are you saying that I build one version with this line in the manifest: <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="3" /> and then another identical version with this line : <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" /> and release both versions into the market?
Yes you have to have slightly different title for the two apps though. I added a (1.5) to the title of the app. That shows the user that he is using another version and may have some of the bigger features missing.
Janusz