Instagram分享(文本/图片/视频)

Instagram分享(通过调研后整合的技术分享-Android端)

使用条件

  1. 官方地址:https://developers.facebook.com/docs/instagram/sharing-to-feed?locale=zh_CN。
  2. 由于使用的是Intent调起Instagram,使用前需要检查是否安装了Instagram app。
  3. Instagram包名:
    • 通用包名:“com.instagram.android”
    • 分享到快拍:“com.instagram.share.ADD_TO_STORY”
    • 分享到动态:“com.instagram.share.ADD_TO_FEED”
  4. 6.0 申请读写权限
  5. 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();
}

由于是第一次写博客,排版或技术上还不够成熟,如有疑问或指导之处,请多多指教。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>