2016-09-14 25 views
3

嗨我想在下一個activity中捕獲圖像並對該圖像進行一些操作。我嘗試在Samsung和Moto G中運行下面的代碼並且它的工作正常。我用redmi note3嘗試了相同的代碼,點擊右邊標記它來到相同的活動。如何解決這個問題?這是我的代碼:resultCode == RESULT_OK在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

調試onActivityResult方法和檢查什麼是錯誤的,在該步驟然後發佈它更好地幫助 – Vickyexpert

+0

@Vickyexpert當我運行這段代碼發送resultCode == Activity.RESULT_OK越來越resultCode爲= 0爲redmi和moto resultCode = -1。之後,它不會嘗試在紅米移動塊。 – Amshu

+0

此代碼在片段或活動? –

回答

2

替換此: -

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

什麼是MyFileContentProvider? –

1

將此代碼添加到您的activity標記您的Manifest文件中。

android:configChanges="orientation|keyboardHidden|screenSize" 

它不會讓你當前的活動破壞和重新創建,所以你會得到結果。

如果這不起作用,請確保您的設備未處於省電模式。 具有有效電源/省電模式的RedMi設備會導致先前的活動失去其狀態,當返回結果時它會再次調用onCreate,因此您將無法獲得真實結果。

+0

我嘗試過使用該代碼,並且電源/電池節能模式關閉。即使它不調用下一個活動。 – Amshu

+0

由於@Vickyexpert表示您應該調試您的onActivityResult並檢查實際出錯。然後編輯問題或評論。 樂意幫忙。 – Mann

+0

當我運行此代碼resultCode == Activity.RESULT_OK越來越resultCode = 0爲redmi和moto resultCode = -1.Also後,它不會嘗試在紅米移動塊。 – Amshu