android - 如何创建可以与所有客户端一起使用的 android 共享 Intent ?

标签 android android-intent twitter share

您好,我正在开发应用程序,我想使用“分享” Intent 发布带有照片的推文。 首先,我搜索并找到了一个适用于官方客户端的 Intent,而我想要的是我的应用适用于所有客户端。

这是我的代码:

    String message = "Here goes my message";
    Uri screenshotUri = Uri.parse("file:///sdcard/screenshot.jpeg");
    try {
        Intent sharingIntent = new Intent(Intent.ACTION_SEND);
        sharingIntent.setClassName(getApplicationContext(),findTwitterClient().getPackage());
        sharingIntent.putExtra(Intent.EXTRA_TEXT, message);
        sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
        startActivity(sharingIntent);
    } catch (Exception e) {
        Log.e("In Exception", "Comes here");

        //This also opens a dialog that

    }

我还有以下功能可以知道设备上安装了什么客户端。

public Intent findTwitterClient() {
    final String[] twitterApps = {
            // package // name - nb installs (thousands)
            "com.twitter.android", // official - 10 000
            "com.twidroid", // twidroyd - 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 客户共享。 Intent 是应用程序之间的一种接口(interface)。每个客户端自行决定它支持处理哪些 Intent 。您可以很容易地想象一个自定义 Twitter 客户端,它不处理除主要启动 Intent 之外的任何 Intent 。

关于android - 如何创建可以与所有客户端一起使用的 android 共享 Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15793824/

相关文章:

javascript - 推文按钮 Iframe

android - 在 Android webview 中嵌入 Twitter Widget

android - android 设备的 html 和 css 中的对齐问题

android - Android - 无需SIM卡或互联网连接即可启用Wifi网络共享

android - 需要帮助才能在第 3 方 VOIP 应用程序中使用 native IN-CALL 屏幕

android - 在 Android 中创建公共(public) Intent

android - Twitter4j API 不会在 android 中按下后退按钮时重定向到应用程序

android - ToggleButton/CheckBox 的 setOnClickListener 在 ListView 中不起作用?

android - ToggleButton 状态以编程方式更改而不是在 Android 中自动更改?

java - 从 android 保存 csv。共享时文件无标题