2

呼び出すstartActivityForResultと私になりActivityNotFoundExceptionます。startActivityForResult内部に電話することさえ可能かどうか知りたかったのonActivityResultですか?はいの場合、私のコードで何が間違っている可能性がありますか?

コードは次のとおりです。

OnPreferenceClickListener selectListener = new OnPreferenceClickListener() {

        public boolean onPreferenceClick(Preference preference) {
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
            photoPickerIntent.setType("image/*");
            photoPickerIntent.putExtra("crop","true");
            startActivityForResult(photoPickerIntent, 123);
            return false;
        }

    };

    protected void onActivityResult(int requestCode, int resultCode, Intent resultIntent) { 
        super.onActivityResult(requestCode, resultCode, resultIntent);

        if(requestCode == 123){
            if(resultCode == RESULT_OK){
                Uri selectedImage = resultIntent.getData(); // uri from user selection.
                File tempFile; // temporary File
                Uri tempUri; // temporary Uri

                try {
                    // initializing File
                    tempFile = File.createTempFile("crop", ".png", Environment.getExternalStorageDirectory());
                } catch (IOException e1) {
                    tempFile = null;
                }

                if(tempFile != null){
                    // initializing Uri
                tempUri = Uri.fromFile(tempFile);   
                }else{
                    tempUri = selectedImage;
                }

                Display display = getWindowManager().getDefaultDisplay(); 
                int width = display.getWidth();
                int height = display.getHeight();

                // creating new crop intent
                final Intent cropIntent = new Intent("com.android.camera.action.CROP");
                cropIntent.setData(selectedImage); // original image Uri
                cropIntent.putExtra("outputX", width);
                cropIntent.putExtra("outputY", height);
                cropIntent.putExtra("aspectX", width);
                cropIntent.putExtra("aspectY", height);
                cropIntent.putExtra("scale", true);
                cropIntent.putExtra("noFaceDetection", true);
                cropIntent.putExtra("output", tempUri);  // cropped image Uri
                cropIntent.putExtra("outputFormat", "png");
                startActivityForResult(cropIntent, 456);
            }

        if(requestCode == 456){
            if(resultCode == RESULT_OK){
                System.out.println("inside request code 456");
            }
        }
4

1 に答える 1

0

を削除することでこのエラーを解決しましたphotoPickerIntent.putExtra("crop","true");

于 2012-09-01T22:10:36.147 に答える