Chinaunix首页 | 论坛 | 博客

Go

  • 博客访问: 226490
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 783
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-12 16:29
文章分类

全部博文(67)

文章存档

2015年(1)

2014年(47)

2013年(19)

我的朋友

分类: Android平台

2014-09-09 18:11:07


package com.example.test;


import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends Activity {


public Button open3g;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
open3g=(Button)findViewById(R.id.open3G);
open3g.setOnClickListener(new open3GClickListener());
    
}


class open3GClickListener implements OnClickListener{




@Override
public void onClick(View v) {
setMobileNetEnable();

Toast.makeText(MainActivity.this,"hello", 1).show();
}

}




////////
/**    * 移动网络开关    */ 
//    private void toggleMobileData( boolean enabled) { 
// ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
//
// Class conMgrClass = null; 
// // ConnectivityManager类    
// Field iConMgrField = null;
// // ConnectivityManager类中的字段     
// Object iConMgr = null; 
// // IConnectivityManager类的引用      
// Class iConMgrClass = null; 
// // IConnectivityManager类    
// Method setMobileDataEnabledMethod = null;
// // setMobileDataEnabled方法  
// try {            
// // 取得ConnectivityManager类  
// conMgrClass = Class.forName(conMgr.getClass().getName()); 
// // 取得ConnectivityManager类中的对象mService    
// iConMgrField = conMgrClass.getDeclaredField("mService");   
// // 设置mService可访问        
// iConMgrField.setAccessible(true);    
// // 取得mService的实例化类IConnectivityManager      
// iConMgr = iConMgrField.get(conMgr);   
// // 取得IConnectivityManager类     
// iConMgrClass = Class.forName(iConMgr.getClass().getName());  
// // 取得IConnectivityManager类中的setMobileDataEnabled(boolean)方法     
// setMobileDataEnabledMethod = iConMgrClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);    
// // 设置setMobileDataEnabled方法可访问  
// setMobileDataEnabledMethod.setAccessible(true);  
// // 调用setMobileDataEnabled方法   
// setMobileDataEnabledMethod.invoke(iConMgr, enabled);  
// } catch (ClassNotFoundException e) {      
// e.printStackTrace();      
// }
// catch (NoSuchFieldException e) {    
//    e.printStackTrace();   
// } 
// catch (SecurityException e) {       
// e.printStackTrace();    
// }
// catch (NoSuchMethodException e) { 
// e.printStackTrace();    
// } 
// catch (IllegalArgumentException e) { 
// e.printStackTrace();      
// }
// catch (IllegalAccessException e) {  
// e.printStackTrace();    
// }
// catch (InvocationTargetException e) {     
// e.printStackTrace();   
// }
//
// }


///////


//
public final void setMobileNetEnable(){
 ConnectivityManager mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);


 Object[] arg = null;
 try {
  boolean isMobileDataEnable = invokeMethod("getMobileDataEnabled", arg);
  if(!isMobileDataEnable){
   invokeBooleanArgMethod("setMobileDataEnabled", true);
  }
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
}


 


public boolean invokeMethod(String methodName,
           Object[]  arg) throws Exception {
    
    ConnectivityManager mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);


       Class ownerClass = mConnectivityManager.getClass();


       Class[]  argsClass = null;
       if (arg != null) {
           argsClass = new Class[1];
           argsClass[0] = arg.getClass();
       }


       Method method = ownerClass.getMethod(methodName, argsClass);
       
       Boolean isOpen = (Boolean) method.invoke(mConnectivityManager, arg);


       return isOpen;
   }
    
    public Object invokeBooleanArgMethod(String methodName,
               boolean value) throws Exception {
     
     ConnectivityManager mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);


           Class ownerClass = mConnectivityManager.getClass();


           Class[]  argsClass = new Class[1];
               argsClass[0]=boolean.class;


           Method method = ownerClass.getMethod(methodName,argsClass);


           return method.invoke(mConnectivityManager, value);
       }


 




//


}

   
   


Test.rar

阅读(900) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~