我没有 SE 手机,但我查看了它的系统转储并:
- 在 AOSP 源代码中,com.android.internal.telephony 接口中有两个内部方法:enableDataConnectivity() 和 disableDataConnectivity()。该接口及其实现是系统的一部分。
- com.android.phone.PhoneInterfaceManager 中还有两个同名的方法,它是 Phone.apk 应用程序的一部分。这些方法只是调用上面/系统的。
- Sony 修改了 com.android.phone.PhoneInterfaceManager.enableDataConnectivity(),因此它会额外检查存储在 sharedPreferences 中的布尔值。如果为 false,则 enableDataConnectivity() 方法始终调用 com.android.internal.telephony 的 disableDataConnectivity() 。
- 当然,这个布尔值是通过首选项屏幕控制的:“彩信和数据”。它存储在“com.android.phone_preferences”首选项容器中,首选键是:“data_service_key”。此外,当您切换此复选框时,设置活动会自动调用 com.android.internal.telephony 中的方法来立即切换数据状态。
如果您想将数据连接小部件或类似的东西添加到您的 rom,那么:
- 你需要根。
- 您需要“android.uid.phone”sharedUserId 才能访问上述设置。
我认为最好修改Phone.apk,这样它会捕捉到启用/禁用数据的特殊意图。它将设置 data_service_key 布尔值并调用来自 com.android.internal.telephony 的方法之一。这应该很容易做到,然后您将能够非常轻松地创建小部件、应用程序和其他东西 - 他们会使用这种特殊意图。