我必须将我的应用程序中的图像共享到 instagram 。我已经浏览了 Instagram开发者文档,他们只提到了通过Intent方法进行共享,但我需要的是在发布成功后我必须得到一个回调。
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"));
}
有没有办法做到这一点?
答案 0 :(得分:1)
根据API的不同,有几种选择。首先引用他们的Android Intents,这是一个不好的例子恕我直言,这或多或少是Android中如何共享数据的默认方式。你想要的是更像是打开他们的应用程序。对于这种情况,有setPackage()
选项:
// Create the new Intent using the 'Send' action.
Intent share = new Intent(Intent.ACTION_SEND);
// Limit this call to instagram
share.setPackage("com.instagram.android");
// 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);
try {
// Fire the Intent.
startActivityForResult(share, REQUEST_CODE);
} catch(ActivityNotFoundException e) {
// instagram not installed
}
现在,对于未安装instagram的情况,您几乎已经丢失。如果没有其他SDK,则无法做任何事情。
一个非常复杂的解决方法可能是将文件上传到您自己的后端。然后打开浏览器以访问oauth令牌,以通过后端上传图像。然而,这是一个安静的昂贵解决方案,我会避免。