哪个意图应该打开数据使用屏幕(来自设置)

Posted

技术标签:

【中文标题】哪个意图应该打开数据使用屏幕(来自设置)【英文标题】:Which intent should open Data Usage screen (from settings) 【发布时间】:2015-10-20 10:58:22 【问题描述】:

我希望从意图打开数据使用屏幕。 我已经在 android.provider.Settings 类中搜索了合适的意图。 试过了:

new Intent(android.provider.Settings.ACTION_NETWORK_OPERATOR_SETTINGS)
new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS)

这不会导致数据使用。

我很清楚所有有这个问题的链接,但没有一个回应。 How to open System Data Usage Activity in android? Android programming to open Data Usage setting page 等等……

【问题讨论】:

并非“设置”中的所有屏幕都有专用的Intent 操作。这可能是其中之一。 【参考方案1】:

你可以用这个来实现上面的!!我在 Kitkatlollipop 设备上对此进行了测试,在这两个设备上都可以正常工作

    Intent intent = new Intent();
    intent.setComponent(new ComponentName("com.android.settings","com.android.settings.Settings$DataUsageSummaryActivity"));
    startActivity(intent);

【讨论】:

也分享您的许可 在 Android 5 和 8 上运行良好。在 Android 4.1.2 上,转到“数据使用”,但没有启用/禁用数据的选项。但在这个系统上,我们可以用另一种方式来做到这一点......【参考方案2】:
private static final String SETTINGS_PACKAGE = "com.android.settings";
private static final String SETTINGS_CLASS_DATA_USAGE_SETTINGS = "com.android.settings.Settings$DataUsageSummaryActivity";

try 
            final Intent intent = new Intent(Intent.ACTION_MAIN, null);
            final ComponentName cn = new ComponentName(SETTINGS_PACKAGE, SETTINGS_CLASS_DATA_USAGE_SETTINGS);
            intent.setComponent(cn);
            context.startActivity(intent);
         catch (ActivityNotFoundException e) 
            Log.v(TAG, "Data settings usage Activity is not present");
        

【讨论】:

以上是关于哪个意图应该打开数据使用屏幕(来自设置)的主要内容,如果未能解决你的问题,请参考以下文章

意图在huawei中受保护的应用程序

Android知识合集

来自哪个活动的广播接收器的上下文信息?

在 Django 中以 html 模式加载动态数据

AutoLayout:如果需要,我可以指定应该打破哪个约束并设置备份吗?

更改意图时 Android Studio 崩溃