我正在尝试使用内置于我的Android设备中的闪光灯LED。我发现现有的question非常有用,但我现在看到一个奇怪的编译错误。问题是我的代码中我检查闪存可用性的部分。
boolean FlashAvails=Context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
有一个编译错误,它读取"无法从类型Context"中对非静态方法getPackageManager()进行静态引用。
答案 0 :(得分:1)
根据Javadoc,方法getPackageManager()不是静态的: http://developer.android.com/reference/android/content/Context.html
您需要获取对上下文的引用,然后才能调用该方法。
要获得对上下文的引用,您可以:
Context appContext = Context.getApplicationContext();
然后您可以按如下方式访问包管理器:
appContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
确保包含导入:
import android.content.Context;
假设你正在使用Eclipse,你可以按:ctrl-shift-o它将重新组织你的导入并拉入任何缺少的东西。
如果您仍然遇到问题,另一种方法是获取相机参数,如此帖子中所述:How to find flashlight feature is available or not in device < = sdk 4