正在 Lollipop 上启动 APN 设置 activity

Launching APN settings activity on Lollipop

我正在尝试从 Lollipop 中的测试应用程序启动 APN 设置 activity。

我使用了以下代码:

Intent sendIntent = new Intent(Settings.ACTION_APN_SETTINGS);

启动 APN 设置 activity。

activity 正在启动,但屏幕未显示任何 APN 列表。

而是显示为:

Access Point Name Settings are not available for this user

以下是日志:

来自测试应用程序:

I/ActivityManager(798): START u0 {act=android.settings.APN_SETTINGS flg=0x10000000 cmp=com.android.settings/.Settings$ApnSettingsActivity} from uid 10066 on display 0
I/ActivityManager(798): Start proc 3273:com.android.settings/1000 for activity com.android.settings/.Settings$ApnSettingsActivity
I/ActivityManager(798): Displayed com.android.settings/.Settings$ApnSettingsActivity: +487ms

来自设备设置:

I/ActivityManager(798): Displayed com.android.phone/.MobileNetworkSettings: +395ms
I/ActivityManager(798): START u0 {act=android.settings.APN_SETTINGS cmp=com.android.settings/.Settings$ApnSettingsActivity (has extras)} from uid 1001 on display 0
I/ActivityManager(798): Displayed com.android.settings/.Settings$ApnSettingsActivity: +190ms

我发现的唯一区别是它有附加功能....

extras应该包含什么?

我希望,我会得到回应..

我已经通过以下方式找到了解决方案..

正如我在查询中提到的,差异是 "has extras"。

sendIntent.putExtra("sub_id", SubscriptionManager.NAME_SOURCE_SIM_SOURCE);

此 SubscriptionManager class 是在 5.1 中引入的,问题仅在 5.1 中出现。

希望对你有所帮助...