我想创建一个在twitter上共享图像的应用程序 但是当我点击按钮时,它显示消息“没有应用程序执行此操作” 以下代码有什么问题吗?
private void share()
{
// TODO Auto-generated method stub
Intent tweetIntent = new Intent(Intent.ACTION_SEND);
tweetIntent.setType("application/twitter");
tweetIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test; please ignore");
startActivity(Intent.createChooser(tweetIntent, "Choose one"));
}
答案 0 :(得分:1)
需要安装Twitter应用程序,并且用户可能需要主动登录(大多数人都是)才能使用它。我不认为tweetIntent.setType("application/twitter");
有效,我从未见过。您可以通过过滤应用程序包名称tweetIntent.setPackage("com.twitter.android");
来限制Twitter的份额。您需要使用PackageManager验证这是否可用。以下是可能的代码,我没有对此进行测试。
Intent tweetIntent = new Intent(Intent.ACTION_SEND);
tweetIntent.setPackage("com.twitter.android");
tweetIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test; please ignore");
PackageManager pm = context.getPackageManager();
if(pm.queryIntentActivities (tweetIntent, 0).size() > 0) { // If there's at least 1 intent that matches then the intent is valid.
startActivity(Intent.createChooser(tweetIntent, "Choose one"));
} else {
// Not supported.
}
Android的共享意图用于将数据发送到其他应用程序。您可以将共享限制为特定的应用程序,就像您正在做的那样。但是,你正在反对Android的工作原理,你通过这样做来打开自己的不兼容问题。您可能最好直接使用Twitter API。
理由是,如果用户没有安装Twitter,那么很可能他们并不真正关心它。但他们可能希望在Facebook等其他服务上分享内容。
答案 1 :(得分:0)
尝试twitpic api在Twitter上分享图片。
答案 2 :(得分:0)
经过研究,我发现你必须登录twitter并创建一个应用程序,然后twitter将生成四个参数:consumer_key,consumer_key_secret,access_token,access_token_secret。有了这个秘密,你可以这样做:
Configuration conf = new ConfigurationBuilder().setMediaProviderAPIKey(config.getMediaProvider())
.setOAuthConsumerKey("...")
.setOAuthConsumerSecret(""...)
.setOAuthAccessToken("...")
.setOAuthAccessTokenSecret("...")
.build();
ImageUpload uploader = new ImageUploadFactory(conf).getInstance();
然后您可以使用上传器上传您的信息。
答案 3 :(得分:0)
您也可以使用TweetComposer。您可以查看:working example with Tweet Composer Kit
来自Twitter的文档:
TweetComposer Kit提供了两种撰写推文的方法:
- 启动Twitter应用程序的Tweet Composer - 一个功能丰富的作曲家,支持附加图像和视频。
- 推出Twitter Kit App Card Composer - 一款轻量级作曲家,可让用户在您的应用程序中使用App卡撰写推文。
醇>如果未安装Twitter应用程序,意图将在浏览器中启动twitter.com,但指定的图像将被忽略。
如果符合您的需求,它可以是替代解决方案。祝你好运!