Java getPackageManager().hasSystemFeature(PackageManager.FEATURE\u CAMERA\u FLASH)返回false

Java getPackageManager().hasSystemFeature(PackageManager.FEATURE\u CAMERA\u FLASH)返回false,java,android,Java,Android,嗨,伙计们 我创建了一个手电筒应用程序,并检查了是否存在这样的手电筒: hasFlash = getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); if (!hasFlash) { AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create();

嗨,伙计们
我创建了一个手电筒应用程序,并检查了是否存在这样的手电筒:

hasFlash = getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

    if (!hasFlash) {
        AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create();
        alert.setTitle("Error");
        alert.setMessage("Sorry, your device doesn't support flashlight!");
        alert.setButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                finish();
            }
        });
        alert.show();
        return;
    }
问题出在一些带有闪光传感器的旧设备上,但这种检查方法返回错误。(例如,当我在Vertis 3510上运行它时,您或Serioux RM X401此检查方法返回false,当我对这些行进行注释时,它工作正常)。
是否有其他方法检查设备是否支持闪存
谢谢大家!

使用此代码

public boolean hasFlash() {
        if (camera == null) {
            return false;
        }

        Camera.Parameters parameters = camera.getParameters();

        if (parameters.getFlashMode() == null) {
            return false;
        }

        List<String> supportedFlashModes = parameters.getSupportedFlashModes();
        if (supportedFlashModes == null || supportedFlashModes.isEmpty() || supportedFlashModes.size() == 1 && supportedFlashModes.get(0).equals(Camera.Parameters.FLASH_MODE_OFF)) {
            return false;
        }

        return true;
    }
public boolean hasFlash(){
如果(摄像机==null){
返回false;
}
Camera.Parameters=Camera.getParameters();
if(parameters.getFlashMode()==null){
返回false;
}
List supportedFlashModes=参数。getSupportedFlashModes();
if(supportedFlashModes==null | | supportedFlashModes.isEmpty()| | supportedFlashModes.size()==1&&supportedFlashModes.get(0).equals(Camera.Parameters.FLASH_MODE_OFF)){
返回false;
}
返回true;
}

既然摄像头从API 21开始就被弃用,如何解决这个问题?:)