Я предполагаю: не используйте неизвестную константу.
getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_AUTOFOCUS)
Должно быть:
getPackageManager().hasSystemFeature("android.hardware.camera.autofocus")
Разработчики не могли использовать здесь константы. Это решает проблему определения, есть ли на устройстве, работающем с API, который знает о функции, функция. но терпит неудачу в случае, который вы только что упомянули ... они действительно затрудняют поддержку нескольких уровней API.
Обновлено : только что сам проверил ... PackageManager.hasSystemFeature () обнаружился только на уровне API 5. Я пытался добавить эту проверку в мой код, который может очень хорошо поддерживать уровень API 3 ( 1.5) но которая может выиграть от автофокуса камеры ... кажется, что мне нужно выбрать поддержку 1.5 или иметь возможность использовать автофокусировку ... или переместить мою обратную совместимость на уровень 5 ... или реализовать это http://www.java.net/forum/topic/java-tools/java-development-tools/wwyt-conditional-compilation-pre-process ... да, верно.
они действительно затрудняют поддержку нескольких версий. Так что извините 1.5 и 1.6 и 2.0 пользователей. так как мое устройство на 2.2, это будет моей нижней строкой.