我需要通过其他社交应用程序与我的应用程序共享文本。我有一段代码正常工作,但它在对话框中显示应用列表:
我想以这种方式使用相同的功能。我可能需要根据设备中安装的应用程序动态创建视图。
请建议我如何实现这个目标
答案 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;