简体   繁体   English

android camera函数getcameraIdlist()函数不返回任何内容

[英]android camera function getcameraIdlist() function does not return anything

  1. The code produces an IllegalArguementException . 该代码产生一个IllegalArguementException
  2. The list does not seem to populate even though all permissions are given in the manifest . 即使manifest中给出了所有permissions ,列表似乎也不会填充。
  3. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM