0

我正在制作一个需要能够在用户打开的应用程序之间切换的应用程序(例如,多任务菜单中的应用程序)我有ComponentName10 个最新应用程序中的一个,并且可以启动它们(即切换到它们) 像这样:

intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setComponent(info);
startActivity(intent);

但是,当我尝试更改为 Facebook(可能还有一些类似的应用程序)时,它会请求特定权限:

java.lang.SecurityException: Permission Denial: 从 ProcessRecord{42310bc0 8578:com.javanut13.multitaskheads/u0a10095} 开始 Intent { flg=0x10000000 cmp=com.facebook.katana/.activity.FbFragmentChromeActivity } (pid=8578, uid=10095 ) 需要com.facebook.permission.prod.FB_APP_COMMUNICATION

有没有办法通过实际切换到应用程序而不是启动它来解决这个问题?我可以简单地将焦点发送到不同的应用程序吗?

4

1 回答 1

0

除非您有权限,否则我认为您只能在其“导出”属性设置为 true 时启动其他应用程序的活动。类似 Facebook 的应用程序可能会将其设置为 false,并且不允许其他应用程序访问其活动。

我自己没有测试过,但是你可以试试下面的代码:

Intent extApp= getPackageManager().getLaunchIntentForPackage(facebook-package-name);
this.startActivity(extApp);

希望这可以帮助。

参考:

于 2013-10-21T01:58:13.303 回答