从程序启动隐藏的Android设置活动

从程序启动隐藏的Android设置活动,android,android-activity,android-intent,Android,Android Activity,Android Intent,我试图从一个程序中启动Android tethering设置菜单,但是它是一个名称中带有斜杠的半隐藏菜单(com.Android.settings/.tether.tether),我不确定应该将其称为什么。这就是我迄今为止所尝试的: Intent intent = new Intent(); intent.setClassName("com.android.settings", "com.android.settings/.tether.Tether"); startActivity(inten

我试图从一个程序中启动Android tethering设置菜单,但是它是一个名称中带有斜杠的半隐藏菜单(com.Android.settings/.tether.tether),我不确定应该将其称为什么。这就是我迄今为止所尝试的:

Intent intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings/.tether.Tether");
startActivity(intent);
我还在setClassName行中尝试了“com.android.settings/”

但是,不管怎样,它都说找不到类:

I/ActivityManager(51):开始活动:Intent{act=android.Intent.action.MAIN cmp=com.android.settings/com.android.settings/.tether.tether} D/AndroidRuntime(254):关闭虚拟机 W/dalvikvm(254):线程ID=3:线程退出时出现未捕获异常(组=0x4001b188) E/AndroidRuntime(254):未捕获处理程序:由于未捕获异常而退出主线程 E/AndroidRuntime(254):java.lang.RuntimeException:无法启动活动组件信息{com.zzzz.launcher/com.zzzz.launcher.launcher}:>android.content.ActivityNotFoundException:无法找到显式活动类>{com.android.settings/com.android.settings/.tether};您是否在AndroidManifest.xml中声明了此活动

我的清单文件中列出了以下活动:

<activity android:name="com.android.settings/.tether.Tether" />
…但即使如此,我仍然希望了解如何使用其类名启动它,因为还有其他名称中带有斜杠的类(例如com.android.settings./proxySelector),我希望以类似的方式启动它们

干杯

保罗

(进一步跟踪:)

I/ActivityManager(59):开始活动:Intent{act=android.Intent.action.MAIN cat=[android.Intent.category.LAUNCHER]flg=0x10200000cmp=com.zzzz.LAUNCHER/.ProxySet bnds=[163240][237319]} I/ActivityManager(59):为activity com.zzzz.launcher/.ProxySet:pid=397 uid=10040 gids={1015}启动proc com.zzzzzz.launcher I/ActivityManager(59):启动活动:Intent{cmp=com.android.settings/.ProxySelector} D/AndroidRuntime(397):关闭虚拟机 W/dalvikvm(397):threadid=1:线程退出时出现未捕获异常(组=0x4001d800) E/AndroidRuntime(397):致命异常:主 E/AndroidRuntime(397):java.lang.RuntimeException:无法启动活动组件信息{com.zzzz.launcher/com.zzzz.launcher.ProxySet}:android.content.ActivityNotFoundException:无法找到显式活动类{com.android.settings/.ProxySelector};您是否在AndroidManifest.xml中声明了此活动


com.android.settings/.tether.tether
由两部分组成。第一个,在斜杠之前,是包名。斜杠后面的第二个是类名。在使用它们的上下文中,必须单独指定它们

您的代码存在多个问题:

  • intent.setClassName(“com.android.settings”、“com.android.settings/.tether.tether”)
    应该是
    intent.setClassName(“com.android.settings”,“.tether.tether”)

  • 您不应将活动列在您的清单中;只有在实现该类时才应该这样做。它只询问您的清单中是否列出了该活动,因为它假定您自己正在实施它


  • com.android.settings/.tether.tether
    由两部分组成。第一个,在斜杠之前,是包名。斜杠后面的第二个是类名。在使用它们的上下文中,必须单独指定它们

    您的代码存在多个问题:

  • intent.setClassName(“com.android.settings”、“com.android.settings/.tether.tether”)
    应该是
    intent.setClassName(“com.android.settings”,“.tether.tether”)

  • 您不应将活动列在您的清单中;只有在实现该类时才应该这样做。它只询问您的清单中是否列出了该活动,因为它假定您自己正在实施它


  • 对于Tether设置,正确的包/类名为“com.android.settings”、“com.android.settings.TetherSettings”


    对于Tether设置,正确的包/类名为“com.android.settings”、“com.android.settings.TetherSettings”


    好的,谢谢你。我的模拟器上似乎不存在tether类,因此我将行更改为:intent.setClassName(“com.android.settings”,“.ProxySelector”)。。。它确实存在(我已经用“am start”确认了这一点),但是,我仍然得到相同的ActivityNotFoundException。有什么想法吗?你能把stackTrace贴出来吗?你的上一个“{com.android.settings/com.android.settings/.tether.tether};”最能告诉我。我道歉。我刚刚测试了它,显然你也必须完全限定类名。这对我有用:`Intent=newintent();intent.setClassName(“com.android.settings”、“com.android.settings.ProxySelector”);星触觉(意向)`当您使用com.android.settings.ProxySelector时,我需要进入设置>wifi和网络>栓系和便携式热点。。。意图是什么;陈述我找不到确切的活动字符串。。谢谢。好的,谢谢你。我的模拟器上似乎不存在tether类,因此我将行更改为:intent.setClassName(“com.android.settings”,“.ProxySelector”)。。。它确实存在(我已经用“am start”确认了这一点),但是,我仍然得到相同的ActivityNotFoundException。有什么想法吗?你能把stackTrace贴出来吗?你的上一个“{com.android.settings/com.android.settings/.tether.tether};”最能告诉我。我道歉。我刚刚测试了它,显然你也必须完全限定类名。这对我有用:`Intent=newintent();intent.setClassName(“com.android.settings”、“com.android.settings.ProxySelector”);星触觉(意向)`如果您使用了com.android.settings.ProxySelector,
    startActivity(new Intent(Settings.ACTION_TETHER_SETTINGS));
    
    Intent tetherSettings = new Intent();
    tetherSettings.setClassName("com.android.settings", "com.android.settings.TetherSettings");
    startActivity(tetherSettings);