红米手机无法调用相机

         公司项目中,有个拍照设置头像功能,某天项目经理跑来跟我说,一台红米测试机上调用不了相机。

         我一惊,连忙在小米1S、2S、三星note、华为、魅族上跑了一圈,发现都是好好的。然后看了下代码,感觉没任何问题。

          只好告诉他,这是系统差异,不要在意这些细节。


 上段调用相机的源码(不知道他们从哪拷来的)

		Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
		SimpleDateFormat timeStampFormat = new SimpleDateFormat(
				"yyyy_MM_dd_HH_mm_ss");
		String filename = timeStampFormat.format(new Date());
		ContentValues values = new ContentValues();
		values.put(Media.TITLE, filename);
		try {
			photoUri = getActivity().getContentResolver().insert(
					MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
			intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
			getActivity().startActivityForResult(intent, CAMERA);
		} catch (Exception e) {
			e.printStackTrace(); 
		}



今天,突然想起这个问题,感觉越来越不对,于是找了某个社交网站,试了下头像设置功能。

卧槽!!!!!!!竟然调出了相机!!!!!!!!

        难道还有另外一种调用方式,于是上网各种找答案,但找不到啊!!!调用相机的方式都长那样,而且近段时间,谷歌打不开,不知道是不是被和谐了。

        呵呵,咱是那么容易放弃的人吗。

下载apk,打开反编译工具,直接去找源码。

         吐槽下某公司的程序猿,一个点击弹框事件竟然用的是ContextMenu,不是Dialog,而且弹框前还有一段不知道干嘛的代码,各种类调用,看起来像通信,直接把我带坑里去了。可是你仅仅只是弹个框选择是使用相机还是相册啊!!!!

         终于花了大半天,把它调用相机的代码给找到了,一看,我哭了,心中一万头草泥马奔腾而过。

 public final void c()
  {
    if (f())
    {
      Intent localIntent = new Intent("android.media.action.IMAGE_CAPTURE");
      h = null;
      h = new File(Environment.getExternalStorageDirectory() + "/jiayuanQDate", "temp");
      localIntent.putExtra("output", Uri.fromFile(h));
      this.b.startActivityForResult(localIntent, 1008);
    }
  }


赶紧打开调试模式,看了下photoUri的值,为null

    

        呵呵,呵呵.......


       

猜你喜欢

转载自blog.csdn.net/msl0903/article/details/30987387