Android 照相机意图的结果代码0

Android 照相机意图的结果代码0,android,android-camera,Android,Android Camera,代码:- 我正在android清单文件中使用与此相关的所有权限。。。 上述意图在mot g3 turbo和更多设备中运行良好,但在仅nexus 5的情况下,结果代码为0。。为什么? 在Commonware的指导下,先生,我通过以下更改解决了我的问题 Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); tr

代码:-

我正在android清单文件中使用与此相关的所有权限。。。
上述意图在mot g3 turbo和更多设备中运行良好,但在仅nexus 5的情况下,结果代码为0。。为什么?

在Commonware的指导下,先生,我通过以下更改解决了我的问题

  Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);                                   
        try{
               imageUri = Uri.fromFile(File.createTempFile("image", ".jpg"));
           }catch (Exception ex){
               ex.printStackTrace();
          }

   intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageUri);
    startActivityForResult(intent, REQUEST_CAMERA);
Intent Intent=新意图(MediaStore.ACTION\u IMAGE\u CAPTURE);
destination=Environment.getExternalStorageDirectory().getPath()+“/image.jpg”;
outputUri=Uri.fromFile(新文件(目标));
intent.putExtra(MediaStore.EXTRA\u输出,outputUri);
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.LOLLIPOP){
addFlags(intent.FLAG\u GRANT\u WRITE\u URI\u权限);
}否则{
List resinfo List=getPackageManager().queryInputActivities(intent,PackageManager.MATCH_DEFAULT_仅限);
对于(ResolveInfo ResolveInfo:ResInfo列表){
字符串packageName=resolveInfo.activityInfo.packageName;
grantUriPermission(packageName、outputUri、Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
}         
startActivityForResult(意图、请求和摄像头);

不要求
File.createTempFile()
返回一个全局可写的文件路径。我预计这段代码在很多设备上都会失败。使用外部存储上的文件。然而,作为一种技术,这将开始失败。与第一个相同,但使用
FileProvider
,允许第三方相机应用程序将图像直接保存到我的应用程序的内部存储器。“我仍然使用Uri来满足我的要求”--您永远不能将您的
targetSdkVersion
提高到23以上。@commonware…这就是我使用这个的原因,先生…实际上我的targetSdkVersion是22…:)@嘿,Saurabh,我正在使用你的解决方案,但在Nexus(6.0.1)的情况下仍然得到结果代码0,但它在Moto Power E3(6.0版)中工作。我使用Nexus 6p,使用此代码,但仍然得到相同的问题
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
destination = Environment.getExternalStorageDirectory().getPath() + "/image.jpg";
outputUri= Uri.fromFile(new File(destination));
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP) {
  intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
} else {
  List<ResolveInfo> resInfoList = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
  for (ResolveInfo resolveInfo : resInfoList) {
      String packageName = resolveInfo.activityInfo.packageName;
      grantUriPermission(packageName, outputUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
  }
}         

startActivityForResult(intent, REQUEST_CAMERA);