0

我正在尝试将图像和一些文本发布到我的 Twitter 状态,但我发现的所有教程都不起作用。每个人都说“登录失败”。这越来越荒谬了。任何人都可以帮助我或指出我正确的方向吗?请提出建议。

PS - 我添加了正确的秘密和密钥。

编辑

我正在使用现有的应用程序,只是想让它工作,以便我可以看到实现该功能的好方法是什么。我在此链接从 github 下载了该项目。

4

1 回答 1

0

我使用了以下代码。

private void shareOnTwitter() {
        try{
        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;

    }

如果我没有所有包名,那将是一个问题,但目前就足够了。

于 2013-09-20T12:08:47.410 回答