ConnectivityManagerの詳細を理解しようとしています。setNetworkPreference()メソッドとgetNetworkPreference()メソッドがあることに気づきましたが、それぞれ整数を受け入れる/返すことを除いて、それらの使用方法に関する詳細はドキュメントにありません。DEFAULT_NETWORK_PREFERENCEと呼ばれる定数もありますが、それは実際には多くのヒントを提供しません。何か案は?
前もって感謝します!
ConnectivityManagerの詳細を理解しようとしています。setNetworkPreference()メソッドとgetNetworkPreference()メソッドがあることに気づきましたが、それぞれ整数を受け入れる/返すことを除いて、それらの使用方法に関する詳細はドキュメントにありません。DEFAULT_NETWORK_PREFERENCEと呼ばれる定数もありますが、それは実際には多くのヒントを提供しません。何か案は?
前もって感謝します!
確かに、ドキュメントはありません。androidのソースコードをgrepすると、次のように表示されます。
user@host:~/android/system/frameworks$ grep -r "setNetworkPreference" *
base/core/java/android/net/IConnectivityManager.aidl: void setNetworkPreference(int pref);
base/core/java/android/net/ConnectivityManager.java: public void setNetworkPreference(int preference) {
base/core/java/android/net/ConnectivityManager.java: mService.setNetworkPreference(preference);
...
base/cmds/svc/src/com/android/commands/svc/WifiCommand.java: connMgr.setNetworkPreference(ConnectivityManager.TYPE_WIFI);
base/cmds/svc/src/com/android/commands/svc/DataCommand.java: connMgr.setNetworkPreference(ConnectivityManager.TYPE_MOBILE);
base/services/java/com/android/server/ConnectivityService.java: public void setNetworkPreference(int preference) {
TYPE_WIFI
上記から、それはただのように見えTYPE_MOBILE
、ネットワークにアクセスする好ましい方法を設定するために使用されます。
ネットワークをテストする1つの例:
public static boolean checkStatus(Context context)
{
final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if( wifi.isAvailable() || mobile.isAvailable())
{
return true;
}
else
{
Log.i(DEBUG_TAG, "No network available");
return false;
}
}