需要通过应用程序共享文本

时间:2014-11-13 10:39:55

标签: android android-layout android-intent android-dialog

我需要通过其他社交应用程序与我的应用程序共享文本。我有一段代码正常工作,但它在对话框中显示应用列表:

我想以这种方式使用相同的功能。我可能需要根据设备中安装的应用程序动态创建视图。

enter image description here

请建议我如何实现这个目标

3 个答案:

答案 0 :(得分:1)

此代码可让您找到指定意图的所有可用应用程序:

public static ArrayList<Availables> getAvailableAppsForIntent(Intent intent, Context context) {
    ArrayList<Availables> availables = new ArrayList<Availables>();

    PackageManager manager = context.getPackageManager();
    List<ResolveInfo> infos = manager.queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);

    for(ResolveInfo info : infos) {
        ActivityInfo activityInfo = info.activityInfo;
        IntentFilter filter = info.filter;
        if (filter != null && filter.hasAction(intent.getAction())) {

            // This activity resolves my Intent with the filter I'm looking for
            String activityPackageName = activityInfo.packageName;
            String activityName = activityInfo.loadLabel(manager).toString();
            String activityFullName = activityInfo.name;
            Drawable icon = activityInfo.loadIcon(manager);
            Availables available = new Availables(activityName, activityFullName, activityPackageName, icon);
            available.setForIntent(intent);
            availables.add(available);
        }
    }

    return availables;
}

可用只是我创建的一个类,用于存储有关应用程序的所有信息,但您可以根据需要进行管理。 那么你可以这样开始应用程序:

    Intent intent = available.getForIntent();
    intent.setPackage(available.getAppPackage());
    context.startActivity(intent);

希望它有所帮助!

答案 1 :(得分:0)

野兔是按钮点击事件使用它

Intent intent = new Intent(android.content.Intent.ACTION_SEND); 
intent.setType("text/plain");
String shareBody = "Here is the share content body";
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
intent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(intent, "Share via"));

答案 2 :(得分:0)

点击任意View编写代码:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Your Subject Here");
intent.putExtra(Intent.EXTRA_TEXT, "Your Message Here...");
return intent;