【发布时间】:2017-07-26 15:38:13
【问题描述】:
我正在尝试使用以下代码在 Twitter 上发帖
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
final PackageManager pm = context.getPackageManager();
final List<ResolveInfo> activityList = pm.queryIntentActivities(intent, 0);
for (final ResolveInfo app : activityList) {
if (app.activityInfo.packageName.endsWith(PACKAGE_TWITTER)) {
final ActivityInfo activity = app.activityInfo;
final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.putExtra(Intent.EXTRA_TEXT, strBody);
intent.setComponent(name);
context.startActivity(intent);
break;
}
}
并且此代码引发安全异常。请帮忙。
【问题讨论】:
-
也发布异常日志
-
@kapsym java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.SEND cat=[android.intent.category.LAUNCHER] typ=text/plain flg=0x10200001 cmp=com.twitter.android/.composer.ComposerActivity clip={text/plain T:}(有额外内容)}来自 ProcessRecord{3745232 4862:com.et.reader.activities/u0a219}(pid=4862,uid=10219 ) 未从 uid 10135 导出
-
为什么需要intent.addCategory(Intent.CATEGORY_LAUNCHER);
-
您不需要启动器类别。删除那行代码。点击此链接使其工作 - stackoverflow.com/questions/21088250/…
-
你提到的链接,我已经在使用那个代码了。但是这段代码在 Marshmallow 及以上设备上给出了异常。
标签: android android-permissions