1

我正在尝试使用我的 android 设备中内置的闪光灯 LED。我发现了一个非常有帮助的现有问题,但我现在看到一个奇怪的编译错误。问题是我检查闪存可用性的代码部分。

boolean FlashAvails=Context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

有一个编译错误显示“无法从类型 Context 对非静态方法 getPackageManager() 进行静态引用”。

4

1 回答 1

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

于 2013-08-05T22:01:31.880 回答