如何检查 SDK 版本的电话和摄像头可用性 < 5
检查摄像头和电话硬件可用性的标准方法仅在 SDK >= 5 后才有效:
PackageManager pm = this.getPackageManager();
boolean hasTelephony=pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
boolean hasCamera=pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
我的问题是我需要在 SDK 3 (Android 1.5) 中运行时定义电话和摄像头的可用性
有什么想法吗?
PS 我知道 Android 1.5 已经非常过时了,但我仍然有很多客户运行这些设备,所以我必须保持与它们的兼容性。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,我找到了解决方案 - 很奇怪,但它有效。
基本上,方法尝试获取电话服务,如果为空,则返回 false,如果不为空(例如,对于 HTC Flyer
TelephonyManager
不为空),方法会尝试运行PackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY )
使用反射,因为此方法不适用于旧版本的 SDK。这是一个代码:
或多或少相同的方法可用于检查相机可用性
Well, I have found solution - very odd but it's working.
Basically method tries to get telephony service if it's null - it returns false, if it's not null (e.g. for HTC Flyer
TelephonyManager
is not null) method tries to runPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
using reflection, since this method is not available for old versions of SDK.Here is a code:
More or less the same approach is workable for checking of camera availability