رفتن به مطلب
  • 0

خطای startActivityForResult در انتخاب عکس


1212

سوال

سلام و درود خدمت همه اساتید و دوستان عزیز

متدstartActivityForResult منسوخ شده اما برخی جاها کار میکنه ولی من یه عکس پروفایل رو میخام انتخاب کنم خطا میده بنظر شما چه روشی رو جایگزین کنم ؟

 

ممنون میشم راهنمایی کنید

  public void onPermissionsGranted(int requestCode) {
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setType("image/*");
        startActivityForResult(intent, 1001);
    }


 @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

        if (requestCode == 1001 && resultCode == RESULT_OK) {

            Uri selectedImage = data.getData();
            String[] filePath = {MediaStore.Images.Media.DATA};
            Cursor c = getContentResolver().query(selectedImage, filePath, null, null, null);
            c.moveToFirst();
            int columnIndex = c.getColumnIndex(filePath[0]);
            String picturePath = c.getString(columnIndex);
            Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
            circleImageUserRegister.setImageBitmap(thumbnail);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            byte[] imageBytes = baos.toByteArray();
            imagencode = Base64.encodeToString(imageBytes, Base64.DEFAULT);
            c.close();
        }

        super.onActivityResult(requestCode, resultCode, data);

    }

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام و درود از روش جدید باید استفاده کنید

public void openSomeActivityForResult() {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    someActivityResultLauncher.launch(intent);
}

// You can do the assignment inside onAttach or onCreate, i.e, before the activity is displayed
ActivityResultLauncher<Intent> someActivityResultLauncher = registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                if (result.getResultCode() == Activity.RESULT_OK) {
                    // There are no request codes
                    Intent data = result.getData();
                    doSomeOperations();
                }
            }
        });

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بسیار ممنون قبلا اینو دیده بودم اما هرکاری کردم نتونستم کدها رو درست کنم مقدور باشه به این کدها نگاه کنید یه پروفایل دارم که میخام تصویر رو توش لود کنم و متد دسترسی هم هست

 

  @Override
    public void onPermissionsGranted(int requestCode) {
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setType("image/*");
      startActivityForResult(intent, 1001);

    }




 private void onClick(){

        textTakeImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Activity_Register.super.requestAppPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1001);
            }
        });

        textRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                register(edtEmail.getText().toString().trim(),edtPass.getText().toString().trim(),imagencode);
            }
        });





    }




    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

        if (requestCode == 1001 && resultCode == RESULT_OK) {

            Uri selectedImage = data.getData();
            String[] filePath = {MediaStore.Images.Media.DATA};
            Cursor c = getContentResolver().query(selectedImage, filePath, null, null, null);
            c.moveToFirst();
            int columnIndex = c.getColumnIndex(filePath[0]);
            String picturePath = c.getString(columnIndex);
            Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
            circleImageUserRegister.setImageBitmap(thumbnail);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            byte[] imageBytes = baos.toByteArray();
            imagencode = Base64.encodeToString(imageBytes, Base64.DEFAULT);
            c.close();
        }

        super.onActivityResult(requestCode, resultCode, data);

    }

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...