2015-10-13 101 views
0

在我的应用程序中,我有这个按钮btn3GOn,如果我点击它将启用数据连接,我已阅读和搜索一些线索,但我失败了,但方法是最好的答案。现在,当我点击按钮它没有打开数据连接,我正在使用jellybean API。启用数据连接不能打开

 btn3GOon.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      try { 
       setMobileDataEnabled(null, false); 
      } catch(Exception e){ 
       e.printStackTrace(); 
      } 
     }            
    }); 
}  
    private void setMobileDataEnabled(Context context, boolean enabled) throws Exception { 
     final ConnectivityManager conman = (ConnectivityManager) context.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, enabled); 
    } 

回答

0

,修改连接的方法是在4.3根据这个帖子弃用:How to disable Mobile Data on Android

望着AOSP来说,绝对不赞成棒棒糖(5.0.0),但我没有看到在文档中,它似乎仍然是现在的棒棒糖前。

记住,你要问权限“CHANGE_NETWORK_STATE”:

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 
+0

我想通了什么错误,这是对空,应该是getApplicationContext。无论如何谢谢你告诉我它的贬低。 –