#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 в свой код, и все равно он не работает