我已经下载了这个twitter 示例。我已经twitter4j
用twitter4j-core-3.0.3.jar
and 替换了旧的onCreate
方法loginToTwitter()
,AsyncTask
以避免得到NetworkOnMainThreadException
. 我还在 twitter 开发网站上创建了一个新应用程序,并添加了我的consumer key
和consumer secret
. 当我尝试登录时,我收到消息“登录失败”。我下载了这个例子,因为我想看看如何完成更新你的 Twitter 状态。我该如何解决这个问题?任何建议将不胜感激。
问问题
487 次
1 回答
0
我使用了以下代码:
Intent shareIntent = findTwitterClient();
shareIntent.putExtra(Intent.EXTRA_TEXT, "added an item to iCollect(Android)! " + strMake + " " + strModel);
startActivity(Intent.createChooser(shareIntent, "Share"));
}catch(NullPointerException e){
Toast.makeText(context, "Twitter app not found", Toast.LENGTH_SHORT).show();
}
public Intent findTwitterClient() {
final String[] twitterApps = {
// package // name - nb installs (thousands)
"com.twitter.android", // official - 10 000
"com.twidroid", // twidroid - 5 000
"com.handmark.tweetcaster", // Tweecaster - 5 000
"com.thedeck.android" }; // TweetDeck - 5 000 };
Intent tweetIntent = new Intent();
tweetIntent.setType("text/plain");
final PackageManager packageManager = getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(
tweetIntent, PackageManager.MATCH_DEFAULT_ONLY);
for (int i = 0; i < twitterApps.length; i++) {
for (ResolveInfo resolveInfo : list) {
String p = resolveInfo.activityInfo.packageName;
if (p != null && p.startsWith(twitterApps[i])) {
tweetIntent.setPackage(p);
return tweetIntent;
}
}
}
return null;
}
问题是如果我的 twitter 包列表不是最新的,代码可能会排除一些 twitter 应用程序。
于 2013-10-18T06:51:04.360 回答