android,方法在获取结果时调用问题

时间:2010-08-31 17:17:43

标签: android methods

我尝试使用反射来调用“List Camera.Parameters.getSupportedFocusModes()”函数,其中包含以下代码:

Camera.Parameters params = mCamera.getParameters();
Method method = params.getClass().getDeclaredMethod("getSupportedFocusModes", (Class[]) null);
Object o = method.invoke(params, (Object[]) null);

日志显示它确实找到了该函数,但是,结果o总是为null,为什么呢?请帮帮我!

2 个答案:

答案 0 :(得分:0)

对我来说很好。返回[auto, infinity]

确保您正在测试的设备使用 API Level 5 或更高版本,并且<uses-permission android:name="android.permission.CAMERA" />已添加到AndroidManifest.xml。

这是我使用的代码。

Camera camera = Camera.open();
Camera.Parameters params = camera.getParameters();
try
{
    Method method = params.getClass().getDeclaredMethod("getSupportedFocusModes", (Class[]) null);
    Object o = method.invoke(params, (Object[]) null);
    Log.i("Camera Test", o.toString());
}
catch (Exception e)
{
    e.printStackTrace();
}

答案 1 :(得分:0)

尝试使用“ getMethod
以下是使用相同的样本。

Method method = this.getFirstActivity().getClass().getMethod("didReceive", null); 
method.invoke(this.getFirstActivity().getClass().newInstance(), null);