«Не удается найти изображение» при совместном использовании Instagram

#android #android-intent #instagram

#Android #android-намерение #Instagram

Вопрос:

в моем приложении пользователь имеет возможность поделиться изображением в Instagram. Это код, который я использую :

 Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
        shareIntent.setType("image/*");

        final ContentResolver cr = getContentResolver();
        final String[] p1 = new String[]{MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.TITLE, MediaStore.Images.ImageColumns.DATE_TAKEN};
        Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1]   " DESC");


        shareIntent.putExtra(Intent.EXTRA_STREAM, photoUri);
        shareIntent.setPackage("com.instagram.android");

        c1.close();
        startActivity(shareIntent);
  

Проблема в том, что в приложении отображается сообщение о том, что

Не удается загрузить изображение.

Я добавил это разрешение в свой manifest.xml

   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  

я также убедился, что дал разрешение со своего устройства, но ничего не работает.

Ответ №1:

я решил свою проблему. я удалил эту строку кода

         Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1]   " DESC");
  

и я заменил это

     shareIntent.putExtra(Intent.EXTRA_STREAM, photoUri);
  

с помощью этого

 shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), photoPath, "img", "Identified image")));
  

Ответ №2:

попробуйте этот код

 String type = "image/*";
String filename = "/myPhoto.jpg";
String mediaPath = Environment.getExternalStorageDirectory()   filename;

createInstagramIntent(type, mediaPath);

private void createInstagramIntent(String type, String mediaPath){

    // Create the new Intent using the 'Send' action.
    Intent share = new Intent(Intent.ACTION_SEND);

    // Set the MIME type
    share.setType(type);

    // Create the URI from the media
    File media = new File(mediaPath);
    Uri uri = Uri.fromFile(media);

    // Add the URI to the Intent.
    share.putExtra(Intent.EXTRA_STREAM, uri);

    // Broadcast the Intent.
    startActivity(Intent.createChooser(share, "Share to"));
}
  

поддерживаемые форматы фотографий: jpeg, gif, png

Комментарии:

1. это открывает только меню «поделиться» для меня. я добавил .jpg в свой код, и все равно он не работает