有没有办法限制Android应用程序中的共享选项?我尝试过使用ShareActionProvider
或者只是简单地使用意向选项启动意图。基本上我希望能够通过电子邮件限制分享或类似的东西。限制共享选项
Q
限制共享选项
1
A
回答
1
你可以使用这样的事情,但不是Facebook上寻找一个不同的名称
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,"this is a string");
shareIntent.setType("image/png");
shareIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri); //Share the image on Facebook
PackageManager pm = getApplicationContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
for (final ResolveInfo app : activityList) {
if ((app.activityInfo.name).contains("facebook")) {
final ActivityInfo activity = app.activityInfo;
final ComponentName name = new ComponentName(
activity.applicationInfo.packageName,
activity.name);
shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
shareIntent.setComponent(name);
startActivity(shareIntent);
break;
}
}
1
您可以自定义意图选择器根据自己的需要这样的 -
List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(shareIntent, 0);
if (!resInfo.isEmpty()){
for (ResolveInfo resolveInfo : resInfo) {
String packageName = resolveInfo.activityInfo.packageName;
Intent targetedShareIntent = new Intent(android.content.Intent.ACTION_SEND);
targetedShareIntent.setType("text/plain");
targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject to be shared");
if (StringUtils.equals(packageName, "com.facebook.katana")){
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "http://link-to-be-shared.com");
}else{
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "text message to shared");
}
targetedShareIntent.setPackage(packageName);
targetedShareIntents.add(targetedShareIntent);
}
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
startActivity(chooserIntent);
}
希望这有助于你。
+0
非常感谢:) – AmaJayJB 2014-10-29 09:27:00
相关问题
- 1. Facebook共享限制“只有我”选项
- 2. 共享首选项
- 3. 共享首选项
- 4. Eclipse共享项目选项?
- 5. 筛选ACTION_SEND共享选项
- 6. 蓝牙共享选项即消失的共享选项
- 7. 使用共享首选项
- 8. 共享首选项存储
- 9. Android共享首选项
- 10. 共享首选项Android
- 11. 共享首选项关闭
- 12. Android共享首选项
- 13. android共享用户ID用于共享特定的共享首选项值
- 14. 共享LAMP上的文件限制
- 15. 限制作者共享的内容
- 16. 有时间限制共享软件
- 17. 将选定的选项与另一个控制器共享
- 18. 共享扩展子查询限制项目类型
- 19. Samba共享权限问题 - 仅限文件系统权限的公共共享
- 20. 共享首选项是否在用户之间共享
- 21. 共享项目
- 22. 共享首选项与数据库
- 23. Android共享首选项初始化
- 24. 共享首选项不必创建?
- 25. 共享首选项有多少数据?
- 26. TFS2010中的文件共享选项
- 27. 单身共享首选项问题
- 28. Android共享首选项 - 重置
- 29. 我的共享首选项不更新,
- 30. 共享首选项不起作用
非常感谢:) – AmaJayJB 2014-10-29 09:27:38
你的欢迎:) – JRowan 2014-10-29 09:28:35