我使用phonegap 3.0为Android创建了一个应用,我想检查设备是否具有Flash ligth,但是我对getPackageManager()方法的方法有疑问,
这是java文件的一部分,通过在设备上进行编译我没有收到任何错误,但插件不起作用:
...
import android.content.Context;
import android.content.pm.PackageManager;
public class Torch extends CordovaPlugin {
Camera camera;
Camera.Parameters Parameters;
boolean hasFlash;
Context my_service;
/* Constructor */
public Torch() { }
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("shine")) {
hasFlash = my_service.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
if (!hasFlash) { callbackContext.error("no torch found"); }
else { this.shine(args.getBoolean(0));
} ...
我也在eclipse中尝试了代码,只有在没有
Context my_service
实例的情况下它才能工作。hasFlash = getApplicationContext().getPackageManager()
.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
if (!hasFlash) { ...
最佳答案
尝试这个
boolean hasFlash = this.cordova.getActivity().getPackageManager()
.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);