Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在xamarin android.ui中启动双卡设置页面_Android_Xamarin.android - Fatal编程技术网

在xamarin android.ui中启动双卡设置页面

在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); 我的手机提

我想使用xamarin android ui从android小部件启动“双sim卡设置”页面。 到目前为止,我能够使用启动(例如)DisplaySettings

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直接启动包类。