1

すべての接続(モバイルなど)を無効にする解決策はありますか

利用可能な場合WIFI

4

1 に答える 1

2

これを試して:

ConnectivityManager connManager = (ConnectivityManager)  
getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (mWifi.isConnected())
{
  turnData(false);
}
void turnData(boolean ON) throws Exception
{

if(bv == Build.VERSION_CODES.FROYO)
{

Log.i("version:", "Found Froyo");
try{ 
    Method dataConnSwitchmethod;
    Class telephonyManagerClass;
    Object ITelephonyStub;
    Class ITelephonyClass;
    TelephonyManager telephonyManager = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);

    telephonyManagerClass = Class.forName(telephonyManager.getClass().getName());
Method getITelephonyMethod = telephonyManagerClass.getDeclaredMethod("getITelephony");
getITelephonyMethod.setAccessible(true);
ITelephonyStub = getITelephonyMethod.invoke(telephonyManager);
ITelephonyClass = Class.forName(ITelephonyStub.getClass().getName());

if (ON) {
     dataConnSwitchmethod = ITelephonyClass.getDeclaredMethod("enableDataConnectivity"); 

} else {
    dataConnSwitchmethod =  ITelephonyClass.getDeclaredMethod("disableDataConnectivity");
}
dataConnSwitchmethod.setAccessible(true);
dataConnSwitchmethod.invoke(ITelephonyStub);
}catch(Exception e){
       Log.e("Error:",e.toString());
  }
else
 {
Log.i("version:", "Found Gingerbread+");
 final ConnectivityManager conman = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
  final Class conmanClass = Class.forName(conman.getClass().getName());
 final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
 iConnectivityManagerField.setAccessible(true);
 final Object iConnectivityManager = iConnectivityManagerField.get(conman);
 final Class iConnectivityManagerClass =   Class.forName(iConnectivityManager.getClass().getName());
 final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
 setMobileDataEnabledMethod.setAccessible(true);
 setMobileDataEnabledMethod.invoke(iConnectivityManager, ON);
  }
 }

マニフェストファイルにこれらの権限を追加することを忘れないでください。

android.permission.ACCESS_WIFI_STATE
android.permission.UPDATE_DEVICE_STATS
android.permission.CHANGE_NETWORK_STATE
android.permission.ACCESS_NETWORK_STATE
android.permission.MODIFY_PHONE_STATE
android.permission.READ_PHONE_STATE
于 2012-08-03T11:48:52.300 に答える