1

我已经下载了这个twitter 示例。我已经twitter4jtwitter4j-core-3.0.3.jarand 替换了旧的onCreate方法loginToTwitter()AsyncTask以避免得到NetworkOnMainThreadException. 我还在 twitter 开发网站上创建了一个新应用程序,并添加了我的consumer keyconsumer secret. 当我尝试登录时,我收到消息“登录失败”。我下载了这个例子,因为我想看看如何完成更新你的 Twitter 状态。我该如何解决这个问题?任何建议将不胜感激。

4

1 回答 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 回答