Как я могу разместить изображение и текст в Instagram? нет проблем, если я должен открыть приложение Instagram, или если я делаю это через API или другое. проблема в том, что я не могу найти, как: у них есть только крюк iphone, и API несопоставим. кто-то так делал или знает? Благодарю.
Android: опубликуйте изображение и текст в Instagram
Ответы (3)
Попробуйте это, это сработало для меня. Я буду использовать его, чтобы поделиться информацией о моем продукте. я получу подробную информацию о продукте, такую как имя, изображение, описание, с сервера и отобразлю в приложении, а затем поделюсь им в instagram.
Получить URL изображения с сервера.
URL url = ConvertToUrl(imgURL);
Bitmap imagebitmap = null;
try {
imagebitmap = BitmapFactory.decodeStream(url.openConnection()
.getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Разместите изображение и текст в Instagram.
// post on instagram
Intent shareIntent = new Intent(
android.content.Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM,
getImageUri(HomeActivity.this, result));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, sharename);
shareIntent.putExtra(
Intent.EXTRA_TEXT,
"Check this out, what do you think?"
+ System.getProperty("line.separator")
+ sharedescription);
shareIntent.setPackage("com.instagram.android");
startActivity(shareIntent);
Преобразование строки Uri в URL-адрес
private URL ConvertToUrl(String urlStr) {
try {
URL url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(),
url.getHost(), url.getPort(), url.getPath(),
url.getQuery(), url.getRef());
url = uri.toURL();
return url;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Преобразование растрового изображения в Uri
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(
inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
Я сомневаюсь, что разработчики Instagram когда-нибудь выпустят iPhone как крючки для Android, поскольку намерения уже служат этой цели.
Если вы хотите поделиться изображением из своего приложения, используйте такое намерение:
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/jpeg");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Path/To/Image.jpg"));
startActivity(Intent.createChooser(i, "Share Image"));
Обратите внимание, что это покажет диалоговое окно, позволяющее пользователю выбрать, какое приложение для обмена фотографиями запустить.
Это работает для меня .... но предполагает имя пакета com.instagram.android, которое, я полагаю, может измениться без предварительного уведомления.
private void shareToInstagram(Uri imageUri){
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/*");
i.putExtra(Intent.EXTRA_STREAM, imageUri);
i.setPackage("com.instagram.android");
activity.startActivity(i);
}
Вы всегда можете проверить, установлен ли пакет com.instagram.android, используя getPackageManager()... и если нет, то не устанавливайте имя пакета в намерении и позвольте средству выбора приложения помочь пользователю выбрать приложение для поделиться изображением с.