resultCode == RESULT_OK在redmi note3中不起作用

时间:2016-09-14 04:36:03

标签: android

您好我想在我的下一个活动中捕获图像并对该图像进行一些操作。我试图在Samsung和Moto G中运行以下代码并且它工作正常。当我尝试使用redmi note3的相同代码时,点击后正确的标志它正在进行相同的活动。如何解决这个问题?这是我的代码:

 fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try{
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    Uri outputFileUri = Uri.fromFile(originalFile);
                    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
                    startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
                } catch (ActivityNotFoundException e) {
                    Toast.makeText(getApplicationContext(), "No camera app found!", Toast.LENGTH_LONG).show();
                }

            }
        });

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode,resultCode,data);
        if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
            Bitmap imageData = null;
            if (resultCode ==Activity.RESULT_OK) {
                try
                    {
                        BitmapFactory.Options bitopt=new BitmapFactory.Options();
                        imageData = BitmapFactory.decodeFile(imagePath, bitopt);
                        Uri tempUri = getImageUri(getApplicationContext(), imageData);

                        Intent i = new Intent(this, Image_R.class);
                        i.putExtra("imageUri", tempUri.toString());
                        startActivityForResult(i, 3);
                    }
                catch (Exception e) {
                    Toast.makeText(this, "Unable to save image", Toast.LENGTH_LONG).show();
                }

            } else if (resultCode == RESULT_CANCELED) {
                // User cancelled the image capture
            }
            }

2 个答案:

答案 0 :(得分:2)

替换它: -

i.putExtra(MediaStore.EXTRA_OUTPUT, MyFileContentProvider.CONTENT_URI);

答案 1 :(得分:1)

将此代码添加到activity文件中的Manifest标记。

 android:configChanges="orientation|keyboardHidden|screenSize"

它不会让您当前的活动破坏并重新创建,因此您将获得结果。

如果这不起作用,请确保您的设备未处于电源/电池节省模式。 具有有效电源/电池节省模式的RedMi设备会导致先前的活动失去其状态,当返回结果时,它将再次呼叫onCreate,因此您将无法获得真实的结果。