我正在开发一个功能,检查camera
是否有任何
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA) == false)
{
//do something
}
没关系,但是当把这些代码放到带参数的函数中时,它就不起作用了
public boolean checkCameraDevice(String str)
{
if (getPackageManager().hasSystemFeature(PackageManager.str) == false)
{
所以,如何实现checkCameraDevice
功能,以便我可以通过FEATURE_CAMERA
checkCameraDevice("FEATURE_CAMERA")
答案 0 :(得分:2)
如果PackageManager.str
是变量,则无法使用PackageManager
来获取str
的常量。
您需要将常量值传递给参数。
像这样使用:
public boolean checkCameraDevice(String feature)
{
if (getPackageManager().hasSystemFeature(feature) == false)
{
并致电
checkCameraDevice(PackageManager.FEATURE_CAMERA);
答案 1 :(得分:2)
PackageManager.FEATURE_CAMERA
是指PackageManager
中的常量字段,其实际值为"android.hardware.camera"
。
FEATURE_CAMERA
是变量名称,您无法通过PackageManager."FEATURE_CAMERA"
将其称为完全错误。如果要使用String参数传递checkCameraDevice(str)
而不是变量名称来调用API "android.hardware.camera"
。
方法定义:
public boolean checkCameraDevice(String str)
{
if (getPackageManager().hasSystemFeature(str) == false)
{
//do something
}
}
方法调用:
checkCameraDevice("android.hardware.camera");
或
checkCameraDevice(PackageManager.FEATURE_CAMERA);
答案 2 :(得分:1)
PackageManager.FEATURE_CAMERA
的常量值为android.hardware.camera
。
你应该这样打电话
checkCameraDevice("android.hardware.camera");
或只是致电
checkCameraDevice(PackageManager.FEATURE_CAMERA);
并且您无法致电PackageManager.str
str
PackageManager
{{1}}。你应该直接使用字符串,否则你可以使用常量。