私はSE電話を持っていませんが、そのシステムダンプを調べて:
- AOSPソースでは、com.android.internal.telephonyインターフェースにenableDataConnectivity()とdisableDataConnectivity()の2つの内部メソッドがあります。このインターフェースとその実装は、システムの一部です。
- Phone.apkアプリの一部であるcom.android.phone.PhoneInterfaceManagerには、上記と同じ名前の2つのメソッドもあります。これらのメソッドは、上記/システムのものを呼び出すだけです。
- Sonyはcom.android.phone.PhoneInterfaceManager.enableDataConnectivity()を変更したため、sharedPreferencesに格納されているブール値をさらにチェックします。falseの場合、enableDataConnectivity()メソッドは常にcom.android.internal.telephonyのdisableDataConnectivity()を呼び出します。
- もちろん、このブール値は設定画面「MMS&data」で制御されます。これは「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からメソッドの1つを呼び出します。これは非常に簡単なことであるはずです。そうすれば、ウィジェット、アプリ、その他のものを非常に簡単に作成できるようになります。それらはその特別な意図を使用します。