3G/LTEデータの状態のON/OFFと状況確認

2014年6月11日水曜日

android ネットワーク 開発

t f B! P L
モバイルデータのON/OFFの変更と、今のON/OFFの確認を行うプログラムです。
使用方法は、
初期化
 MobileData mobileData = new MobileData(getApplicationContext());

ON/OFF変更
 mobileData.setEnabled(true or false);

ON/OFF状態確認
 mobileData.isEnabled();

という感じです。たぶん、android2.3.3以降なら動作すると思います。

ソース
#########################################################################
public class MobileData extends Service
{
Context mContextData;

MobileData(Context context)
{
mContextData = context;
}

// モバイルデータ状態確認
// ON:true
// OFF:false
protected boolean isEnabled()
{
final ConnectivityManager cm = (ConnectivityManager) mContextData.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean result = false;
try{
Method method=cm.getClass().getMethod("getMobileDataEnabled");
method.setAccessible(true);
result  = Boolean.TRUE.equals(method.invoke(cm));
}catch(Exception e){
e.printStackTrace();
Util.logLib( "error");
}
return result;
}

// モバイルデータ設定
protected void setEnabled(boolean isChecked)
{
final ConnectivityManager cm = (ConnectivityManager) mContextData.getSystemService(Context.CONNECTIVITY_SERVICE);
try{
final Method method=cm.getClass().getMethod("setMobileDataEnabled", Boolean.TYPE);
method.setAccessible(true);
method.invoke(cm, isChecked);
}catch(final Exception e){
e.printStackTrace();
}
}

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
#########################################################################

QooQ