[英]android camera function getcameraIdlist() function does not return anything
IllegalArguementException
. IllegalArguementException
。 permissions
are given in the manifest
. manifest
中给出了所有permissions
,列表似乎也不会填充。 The application crashes as soon as the Activity
is opened. 一旦打开“
Activity
”, 应用程序就会崩溃 。
public class photo extends Activity { private Handler mhandler; 公共类照片扩展了Activity {private Handler mhandler; public CameraDevice cam;
公共CameraDevice凸轮; private CameraDevice.StateCallback mcallback;
私有CameraDevice.StateCallback mcallback;
public void setCallback(CameraDevice.StateCallback callback) { this.mcallback = callback; } public void setHandler(Handler handler) { this.mhandler = handler; } int count=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_photo); String[] list=new String[10]; CameraManager camera = (CameraManager) getSystemService(Context.CAMERA_SERVICE); setCallback(mcallback); setHandler(mhandler); ListView cami = (ListView) findViewById(R.id.lv); ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.main_photo, R.id.textView2, list); cami.setAdapter(adapter); try { list = camera.getCameraIdList(); count++; } catch (CameraAccessException e) { e.printStackTrace(); } try { camera.openCamera(list[0], mcallback, mhandler); mcallback.onOpened(cam); } catch (CameraAccessException e) { e.printStackTrace(); Log.d("Photo", "Error in opening camera"); } catch (IllegalArgumentException a) { Log.d("Callback", "Callback Problem"); } }
Unless I'm missing something, as far as I can tell mhandler and mcallback are both null in your calls to setCallback(mcallback)
and setHandler(mhandler)
. 除非我丢失了某些东西,据我所知,在对
setCallback(mcallback)
和setHandler(mhandler)
调用中,mhandler和mcallback均为null。 Try verifying these two variables before you call camera.openCamera(list[0], mcallback, mhandler)
. 在调用
camera.openCamera(list[0], mcallback, mhandler)
之前,请尝试验证这两个变量。
As a side note, the array String[] list=new String[10]
is never used and your variable is reassigned 7 lines later. 附带说明,从未使用数组
String[] list=new String[10]
并且在7行之后重新分配了变量。 Maybe instead, use String[] list;
也许改为使用
String[] list;
Then 7 lines later, use list = camera.getCameraIdList();
然后7行,使用
list = camera.getCameraIdList();
Or simply String[] list=camera.getCameraIdList();
或者只是
String[] list=camera.getCameraIdList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.