在xamarin android.ui中启动双卡设置页面
我想使用xamarin android ui从android小部件启动“双sim卡设置”页面。 到目前为止,我能够使用启动(例如)DisplaySettings在xamarin android.ui中启动双卡设置页面,android,xamarin.android,Android,Xamarin.android,我想使用xamarin android ui从android小部件启动“双sim卡设置”页面。 到目前为止,我能够使用启动(例如)DisplaySettings var pN=Android.Provider.Settings.ActionDisplaySettings; var launchInt=new Intent(pN); launchInt.AddFlags(ActivityFlags.NewTask); context.StartActivity(launchInt); 我的手机提
var pN=Android.Provider.Settings.ActionDisplaySettings;
var launchInt=new Intent(pN);
launchInt.AddFlags(ActivityFlags.NewTask);
context.StartActivity(launchInt);
我的手机提供双sim卡设置。我甚至可以在主屏幕上为它添加一个小部件。
进一步使用“快捷方式创建者”应用程序,我成功创建了一个快捷方式,信息显示:
操作:android.intent.Action.Main
标志:新任务、清除顶部、接收器前景
组件:com.android.settings/.DualCardSettings
但我不知道如何调用/启动此页面
07-18 08:09:55.681 1218 1229 I ActivityManager:START u0{act=android.intent.action.MAIN cat=[com.android.settings.SHORTCUT]flg=0x14000000 hwFlg=0x10 cmp=com.android.settings/.DualCardSettings=[8521632][10601941]}来自uid 10087 07-18 08:09:55.681 1218 1229 I ActivityManager:ActivityRecord信息:ActivityInfo{65e8a5a com.android.settings.DualCardSettings}
从共享日志中,包名为com.android.settings
,com.android.settings.DualCardSettings
是活动名称,如果android公开了此活动,您可以按以下方式打开它:
Intent intent = new Intent(Intent.ActionMain);
ComponentName componentName = new ComponentName("com.android.settings", "com.android.settings.DualCardSettings ");
intent.SetComponent(componentName);
StartActivity(intent);
07-18 08:09:55.681 1218 1229 I ActivityManager:START u0{act=android.intent.action.MAIN cat=[com.android.settings.SHORTCUT]flg=0x14000000 hwFlg=0x10 cmp=com.android.settings/.DualCardSettings=[8521632][10601941]}来自uid 10087 07-18 08:09:55.681 1218 1229 I ActivityManager:ActivityRecord信息:ActivityInfo{65e8a5a com.android.settings.DualCardSettings}
从共享日志中,包名为com.android.settings
,com.android.settings.DualCardSettings
是活动名称,如果android公开了此活动,您可以按以下方式打开它:
Intent intent = new Intent(Intent.ActionMain);
ComponentName componentName = new ComponentName("com.android.settings", "com.android.settings.DualCardSettings ");
intent.SetComponent(componentName);
StartActivity(intent);
为了防止其他人有这个(或类似)问题,我发布了我的工作代码——是在@Junior Jiang-MSFT的帮助下创建的
private void StartDualCardSettings(Context pContext) {
try {
/*
07-18 08:09:55.681 1218 1229 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[com.android.settings.SHORTCUT] flg=0x14000000 hwFlg=0x10 cmp=com.android.settings/.DualCardSettings bnds=[852,1632][1060,1941]} from uid 10087
07-18 08:09:55.681 1218 1229 I ActivityManager: ActivityRecord info: ActivityInfo{65e8a5a com.android.settings.DualCardSettings}
*/
var settingsIntent = new Intent("android.intent.action.MAIN");
settingsIntent.AddCategory("com.android.settings.SHORTCUT");
settingsIntent.SetComponent(new ComponentName("com.android.settings", "com.android.settings.DualCardSettings"));
settingsIntent.AddFlags(ActivityFlags.NewTask);
pContext.StartActivity(settingsIntent);
return;
}
catch(Exception eX) {
// Something went wrong :)
}
}
非常感谢-非常有魅力。为了防止其他人有这个(或类似)问题,我发布了我的工作代码-在@Junior Jiang-MSFT的帮助下创建的
private void StartDualCardSettings(Context pContext) {
try {
/*
07-18 08:09:55.681 1218 1229 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[com.android.settings.SHORTCUT] flg=0x14000000 hwFlg=0x10 cmp=com.android.settings/.DualCardSettings bnds=[852,1632][1060,1941]} from uid 10087
07-18 08:09:55.681 1218 1229 I ActivityManager: ActivityRecord info: ActivityInfo{65e8a5a com.android.settings.DualCardSettings}
*/
var settingsIntent = new Intent("android.intent.action.MAIN");
settingsIntent.AddCategory("com.android.settings.SHORTCUT");
settingsIntent.SetComponent(new ComponentName("com.android.settings", "com.android.settings.DualCardSettings"));
settingsIntent.AddFlags(ActivityFlags.NewTask);
pContext.StartActivity(settingsIntent);
return;
}
catch(Exception eX) {
// Something went wrong :)
}
}
非常感谢-非常有魅力。嗨,这里有一个类似的讨论供参考。谢谢你的提示,但我既不想弄乱两个sim卡,也不需要API-我只想从我的应用程序打开一个特定的设置页面。在这种情况下,双sim卡-但一般来说,这可能是任何在Android.Provider.Sett中没有常量的InSokey,来自Android文档(),
ACTION\u DATA\u ROAMING\u SETTINGS
可能是最接近双卡设置的设置。抱歉,这不是关闭-它是Android.Provider.SETTINGS.ActionWirelessSettings的子菜单-因此我必须从漫游返回到此页面-然后进入我正在搜索的双卡。如果需要关闭,我将使用Android.Provider.Settings.ActionWirelessSettings。但必须有一种方法可以直接打开双sim卡,因为“快捷方式创建者”也可以这样做。它甚至将双sim卡列为“预定义设置页”。明白了。但是谷歌没有在android文档中更新它。我想这种方式可以尝试一下,在进入双sim设置时使用adb外壳输出日志。然后这可能可以看到包名是什么,所以可以使用Intent直接启动包类。嗨,这里有一个类似的讨论供参考。谢谢你的提示,但我也不想要o搞乱两个sim卡,我也不需要API-我只想从我的应用程序中打开一个特定的设置页面。在这种情况下,双sim卡-但一般来说,这可以是Android文档()中Android.Provider.SettingsOkey中没有常量的任何设置,ACTION\u DATA\u ROAMING\u SETTINGS
可能是最接近双卡设置的设置。抱歉,这不是关闭-它是Android.Provider.SETTINGS.ActionWirelessSettings的子菜单-因此我必须从漫游返回到此页面-然后进入我正在搜索的双卡。如果需要关闭,我将使用Android.Provider.Settings.ActionWirelessSettings。但必须有一种方法可以直接打开双sim卡,因为“快捷方式创建者”也可以这样做。它甚至将双sim卡列为“预定义设置页”.明白了。但是谷歌没有在android文档中更新它。我想这种方式可以尝试一下,在进入双sim设置时使用adb外壳输出日志。然后这可能可以看到包名是什么,所以可以使用Intent直接启动包类。