紅米手機無法呼叫相機
阿新 • • 發佈:2018-11-12
公司專案中,有個拍照設定頭像功能,某天專案經理跑來跟我說,一臺紅米測試機上調用不了相機。
我一驚,連忙在小米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
呵呵,呵呵.......