2013-08-05 95 views
1

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

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

有一个编译错误,读取“无法使静态参照非静态方法getPackageManager()从型上下文”。

+0

该变量不是静态的,所以我不明白为什么我收到这个消息 –

回答

1

的方法getPackageManager()也不是一成不变的,根据的Javadoc: 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

+0

怎么办我获得了对上下文的参考? –

+0

我更新了我的回答来回答你的问题。 – lordoku

+0

那么Context.getApplicationContext()在我的原始文章中替换“上下文”?这也不能编译。 –