您好我想在我的下一个活动中捕获图像并对该图像进行一些操作。我试图在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
}
}
答案 0 :(得分:2)
替换它: -
i.putExtra(MediaStore.EXTRA_OUTPUT, MyFileContentProvider.CONTENT_URI);
答案 1 :(得分:1)
将此代码添加到activity
文件中的Manifest
标记。
android:configChanges="orientation|keyboardHidden|screenSize"
它不会让您当前的活动破坏并重新创建,因此您将获得结果。
如果这不起作用,请确保您的设备未处于电源/电池节省模式。
具有有效电源/电池节省模式的RedMi设备会导致先前的活动失去其状态,当返回结果时,它将再次呼叫onCreate
,因此您将无法获得真实的结果。