我正在尝试使用我的 android 设备中内置的闪光灯 LED。我发现了一个非常有帮助的现有问题,但我现在看到一个奇怪的编译错误。问题是我检查闪存可用性的代码部分。
boolean FlashAvails=Context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
有一个编译错误显示“无法从类型 Context 对非静态方法 getPackageManager() 进行静态引用”。
我正在尝试使用我的 android 设备中内置的闪光灯 LED。我发现了一个非常有帮助的现有问题,但我现在看到一个奇怪的编译错误。问题是我检查闪存可用性的代码部分。
boolean FlashAvails=Context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
有一个编译错误显示“无法从类型 Context 对非静态方法 getPackageManager() 进行静态引用”。
根据 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