如何切换 ConnectivityManager.getBackgroundDataSetting() 返回的选项?

发布于 2024-08-08 09:02:56 字数 260 浏览 3 评论 0原文

有人看过 jsharkey 的 Google io 电池寿命演示< /a>?

如何切换模拟器中 ConnectivityManager.getBackgroundDataSetting() 返回的选项?

Did anybody watch jsharkey's battery life google io presentation ?

How does one toggle the option returned by ConnectivityManager.getBackgroundDataSetting() in the emulator ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜还是长夜 2024-08-15 09:02:56

简短的回答是你不能。

更长的答案是你不应该。它是安全设置之一,因此应该不能直接被操纵。

上面链接中的文档指出:

安全系统设置,包含应用程序可以读取但不允许写入的系统首选项。这些是用户必须通过系统 UI 或专门的 API 显式修改这些值的首选项,而不是由应用程序直接修改。

最简单的方法是使用 SYNC_SETTINGS 操作将用户指向正确的设置活动:

 Intent intent = new Intent("android.settings.SYNC_SETTINGS");
 intent.addCategory("android.intent.category.DEFAULT");
 startActivity(intent);

这很可能会破坏应用程序的流程,但会确保用户了解设置的更改。

The short answer is you can't.

The longer answer is you shouldn't. It is one of the secure settings, and as such shouldn't be manipulated directly.

The docs in the link above state:

Secure system settings, containing system preferences that applications can read but are not allowed to write. These are for preferences that the user must explicitly modify through the system UI or specialized APIs for those values, not modified directly by applications.

The easiest way to do this is to point the user to the correct settings activity, using the SYNC_SETTINGS action:

 Intent intent = new Intent("android.settings.SYNC_SETTINGS");
 intent.addCategory("android.intent.category.DEFAULT");
 startActivity(intent);

This is most likely to break the flow of your app, but will make sure the user is aware of the change to the settings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文