Happen to see this old post, I have a similar question along this line. If my app do NOT need camera permission, and I am just throwing intent to let the camera app to capture a picture and return to my app, then theoretically I don't need to declare any <use-permission> or <use-feature> in my manifest. But, if I do declare a <use-feature android:name="android.hardware.camera" android:required="false"/>, that seems to be identical to not declaring it at all, is this correct?
On Saturday, November 26, 2011 at 9:12:51 AM UTC-5, limtc wrote: > > I see. Thanks for the explanation! > > So if I don't declare it, based on the table, it will assume I uses > features: > > android.hardware.camera and > android.hardware.camera.autofocus > > So in order for me to show the app in Android Market that does not > support camera (like low end camera-less tablets), I will need: > > <uses-feature android:name="android.hardware.camera" > android:required="false" /> > > I am not too sure whether I need to declare or not? Since autofocus is > often unnecessary for many apps. > > <uses-feature android:name="android.hardware.camera.autofocus" > android:required="false" /> > > On 11月26日, 下午8时45分, Mark Murphy <[email protected]> wrote: > > > 1) delivers the same results as 3) due to a side-effect of requiring > > that permission. > > > > http://developer.android.com/guide/topics/manifest/uses-feature-eleme... > > > > "Some feature constants listed in the tables above were made available > > to applications after the corresponding API; for example, the > > android.hardware.bluetooth feature was added in Android 2.2 (API level > > 8), but the bluetooth API that it refers to was added in Android 2.0 > > (API level 5). Because of this, some apps were able to use the API > > before they had the ability to declare that they require the API via > > the <uses-feature> system. > > > > "To prevent those apps from being made available unintentionally, > > Android Market assumes that certain hardware-related permissions > > indicate that the underlying hardware features are required by > > default. For instance, applications that use Bluetooth must request > > the BLUETOOTH permission in a <uses-permission> element — for legacy > > apps, Android Market assumes that the permission declaration means > > that the underlying android.hardware.bluetooth feature is required by > > the application and sets up filtering based on that feature." > > > > -- > > Mark Murphy (a Commons Guy)http://commonsware.com| > http://github.com/commonsguyhttp://commonsware.com/blog|http://twitter.com/commonsguy > > > > Android App Developer Books:http://commonsware.com/books > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/android-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/android-developers/f15e2f2d-cba1-4f1b-9e73-32ab9c0624aa%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

