Android 调用系统相机
最近碰到一个android 调用系统相机拍照问题
调用相机代码网上随便找到很多
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri uri = Uri.fromFile(new File(imagePath));
intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
startActivityForResult(intent,RESULT_CAPTURE_IMAGE);
定义一个文件路径,new File,要确保文件夾都存在
然后果在onActivityResult去取文件
在这一步碰到一个奇葩问题,小米4手机拍完点确认后,取到的文件是空的
要等个几秒钟才有,其它手机并没有这个问题
最后用Observable.interval间隔时间去取直到取到的方案解决问题
不用Rx也可以用for等循环去取
附个代码片段):
subscription = Observable.interval(500L, TimeUnit.MILLISECONDS).map(new Func1<Long, Long>() {
public Long call(Long aLong) {
long size = 0L;
if (file.exists() && file.length() > 0L) {
size = file.length();
}
return size;
}
}).filter(new Func1<Long, Boolean>() {
public Boolean call(Long aLong) {
return aLong != 0L;
}
}).compose(activity.<Long>bindToLifecycle()).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(new Action1<Long>() {
public void call(Long aLong) {
//处理逻辑
subscription.unsubscribe();
});