Instagram分享(通过调研后整合的技术分享-Android端)
使用条件
- 官方地址:https://developers.facebook.com/docs/instagram/sharing-to-feed?locale=zh_CN。
- 由于使用的是Intent调起Instagram,使用前需要检查是否安装了Instagram app。
- Instagram包名:
- 通用包名:“com.instagram.android”
- 分享到快拍:“com.instagram.share.ADD_TO_STORY”
- 分享到动态:“com.instagram.share.ADD_TO_FEED”
- 6.0 申请读写权限
- 7.0 在 AndroidManifest.xml 中配置 provider
使用方式
分享文本
// 也可分享动态或快拍,可以自行处理,这里不做展示
try {
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, content);
shareIntent.setPackage(“com.instagram.android”);
activity.startActivity(shareIntent);
} catch (Exception e) {
e.printStackTrace();
}
分享图片
// imagePath为图片存在的本地路径
// 默认调起跳转ins页面的选择器
try {
File imageFile = new File(imagePath);
if (!imageFile.exists())
return;
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/*");
Uri uri;
if (Build.VERSION.SDK_INT >= 24) {
uri = FileProvider.getUriForFile(activity.getApplicationContext(), activity.getPackageName() + ".fileprovider", imageFile);
} else {
uri = Uri.fromFile(imageFile);
}
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.setPackage(“com.instagram.android”);
activity.startActivity(shareIntent);
} catch (Exception e) {
e.printStackTrace();
}
分享图片(动态/快拍)
// imagePath为图片存在的本地路径
try {
File imageFile = new File(imagePath);
if (!imageFile.exists())
return;
Uri uri;
if (Build.VERSION.SDK_INT >= 24) {
uri = FileProvider.getUriForFile(activity.getApplicationContext(), activity.getPackageName() + ".fileprovider", imageFile);
} else {
uri = Uri.fromFile(imageFile);
}
Intent shareIntent = null;
// 调起ins动态
// shareIntent = new Intent(“com.instagram.share.ADD_TO_FEED”);
// 调起ins快拍
// shareIntent = new Intent(“com.instagram.share.ADD_TO_STORY”);
if (shareIntent == null) return;
shareIntent.setPackage(“com.instagram.android”);
shareIntent.setDataAndType(uri, "image/*");
shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
activity.startActivity(shareIntent);
} catch (Exception e) {
e.printStackTrace();
}
分享视频
// videoPath为视频存在的本地路径
// 默认调起跳转ins页面的选择器
try {
File videoFile = new File(videoPath);
if (!videoFile.exists())
return;
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("video/*");
Uri uri;
if (Build.VERSION.SDK_INT >= 24) {
uri = FileProvider.getUriForFile(activity.getApplicationContext(), activity.getPackageName() + ".fileprovider", videoFile);
} else {
uri = Uri.fromFile(videoFile);
}
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.setPackage(“com.instagram.android”);
activity.startActivity(shareIntent);
} catch (Exception e) {
e.printStackTrace();
}
分享视频(动态/快拍)
// videoPath为视频存在的本地路径
try {
File videoFile = new File(videoPath);
if (!videoFile.exists())
return;
Uri uri;
if (Build.VERSION.SDK_INT >= 24) {
uri = FileProvider.getUriForFile(activity.getApplicationContext(), activity.getPackageName() + ".fileprovider", videoFile);
} else {
uri = Uri.fromFile(videoFile);
}
Intent shareIntent = null;
// 调起ins动态
// shareIntent = new Intent(“com.instagram.share.ADD_TO_FEED”);
// 调起ins快拍
// shareIntent = new Intent(“com.instagram.share.ADD_TO_STORY”);
if (shareIntent == null) return;
shareIntent.setPackage(“com.instagram.android”);
shareIntent.setDataAndType(uri, "video/*");
shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
activity.startActivity(shareIntent);
} catch (Exception e) {
e.printStackTrace();
}
由于是第一次写博客,排版或技术上还不够成熟,如有疑问或指导之处,请多多指教。