Browser.EXTRA_APPLICATION_ID 在 ICS 中不起作用
Posted
技术标签:
【中文标题】Browser.EXTRA_APPLICATION_ID 在 ICS 中不起作用【英文标题】:Browser.EXTRA_APPLICATION_ID not working in ICS 【发布时间】:2012-04-11 17:01:30 【问题描述】:从我的服务启动时如何重用 Browser.apk 的选项卡?下面是我的代码,但它在 ICS(平板电脑)中不起作用。
// ICS --> 即使设置了 EXTRA_APPLICATION_ID,浏览器也不会重用选项卡。
public class MyService extends IntentService
....
mBrowserIntent = new Intent(Intent.ACTION_VIEW);
mBrowserIntent.setFlags(Intent.FLAG_FROM_BACKGROUND |
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
mBrowserIntent.putExtra(Browser.EXTRA_APPLICATION_ID , this.getPackageName());
mBrowserIntent.setData(page.getAddress());
startActivity(mBrowserIntent);
// HC --> 即使 EXTRA_APPLICATION_ID 未设置它重用选项卡。
public class MyService extends IntentService
....
mBrowserIntent = new Intent(Intent.ACTION_VIEW);
mBrowserIntent.setFlags(Intent.FLAG_FROM_BACKGROUND |
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
mBrowserIntent.setData(page.getAddress());
startActivity(mBrowserIntent);
// 相关:
9221725
【问题讨论】:
【参考方案1】:感谢@aimango 的回答。这是修复。适用于平板电脑(ICS 和 HC)。
mBrowserIntent = new Intent(Intent.ACTION_VIEW);
mBrowserIntent.setPackage("com.android.browser");
mBrowserIntent.setFlags(Intent.FLAG_FROM_BACKGROUND | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
mBrowserIntent.putExtra(Browser.EXTRA_APPLICATION_ID , "com.android.browser");
mBrowserIntent.setData(page.getAddress());
startActivity(mBrowserIntent);
【讨论】:
以上是关于Browser.EXTRA_APPLICATION_ID 在 ICS 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章