Я хочу отправить изображение Uri из приложения в другое приложение, когда пользователь нажимает кнопку.
Коды на стороне отправки:
val myImage= CropImage.getActivityResult(data)
iv_crop.setImageURI(myImage.uri)
val myImageUri = myImage.uri
btnSendImgForPocessing?.setOnClickListener {
val intent = Intent()
intent.setClassName("com.daily.mylab", "com.daily.mylab.MainActivity")
intent.putExtra(Intent.EXTRA_STREAM, myImageUri);
intent.setType("image/png");
startActivity(intent)
finish()
}
На стороне получателя следующие коды в MainActivity работают для изображений, выбранных из хранилища;
private FloatingActionButton mFabPickImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupViews();
}
private void setupViews() {
mFabPickImage = findViewById(R.id.fab_pick_image);
if (mFabPickImage != null) {
mFabPickImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent;
if (Build.VERSION.SDK_INT >= 19) {
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false);
intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
} else {
intent = new Intent(Intent.ACTION_GET_CONTENT);
}
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setType("image/*");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
ActivityLauncher.launchActivityForResult(MainActivity.this,
Intent.createChooser(intent, getString(R.string.app_name)),
REQUEST_PICK_IMAGE);
}
});
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Logger.debug("requestCode = %d, resultCode = %d, data = %s",
requestCode,
resultCode,
data);
if (requestCode == REQUEST_PICK_IMAGE && resultCode == RESULT_OK) {
Uri pickedImageUri = data.getData();
Logger.debug("picked: %s", pickedImageUri);
if (pickedImageUri != null) {
if(Build.VERSION.SDK_INT >= 19){
final int takeFlags = data.getFlags() & Intent.FLAG_GRANT_READ_URI_PERMISSION;
getContentResolver()
.takePersistableUriPermission(pickedImageUri, takeFlags);
}
segmentImage(pickedImageUri); }
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
Как редактировать эти коды, чтобы получить Uri (в первом разделе кода названный как myImageUri учитывая выше) из другого приложения? (так как я не хочу выбирать изображения из хранилища)