WIFI和移动数据(2G/3G)的打开和关闭的代码实现
发布日期:2021-06-30 11:16:13 浏览次数:3 分类:技术文章

本文共 3480 字,大约阅读时间需要 11 分钟。

MainActivity如下:
package cc.vv;import java.lang.reflect.Method;import android.net.ConnectivityManager;import android.net.wifi.WifiManager;import android.os.Bundle;import android.telephony.TelephonyManager;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.app.Activity;import android.content.Context;/** * Demo描述: * 1 打开和关闭Wifi * 2 打开和关闭设备的移动数据(2G/3G) *  *  * 注意权限: * 
*
*
*
*
* * 参考资料: * 1 http://blog.csdn.net/u011485531/article/details/18016351 * 2 http://blog.csdn.net/li_star/article/details/38758453 * Thank you very much */public class MainActivity extends Activity { private Button mOpenWifiButton; private Button mCloseWifiButton; private Button mOpenMobileDataButton; private Button mCloseMobileDataButton; private Context mContext; private ClickListenerImpl mClickListenerImpl; private WifiManager mWifiManager; private TelephonyManager mTelephonyManager; private ConnectivityManager mConnectivityManager; private boolean isMobileDataEnabled=false; private Method mMethod; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mContext=this; mClickListenerImpl=new ClickListenerImpl(); mWifiManager=(WifiManager) mContext.getSystemService(Context.WIFI_SERVICE); mConnectivityManager=(ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); mTelephonyManager=(TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); //判断当前手机是否在使用MobileData(移动数据) if (mTelephonyManager.getDataState()==TelephonyManager.DATA_CONNECTED) { isMobileDataEnabled=true; } mOpenWifiButton=(Button) findViewById(R.id.openWifiButton); mOpenWifiButton.setOnClickListener(mClickListenerImpl); mCloseWifiButton=(Button) findViewById(R.id.closeWifiButton); mCloseWifiButton.setOnClickListener(mClickListenerImpl); mOpenMobileDataButton=(Button) findViewById(R.id.openMobileDataButton); mOpenMobileDataButton.setOnClickListener(mClickListenerImpl); mCloseMobileDataButton=(Button) findViewById(R.id.closeMobileDataButton); mCloseMobileDataButton.setOnClickListener(mClickListenerImpl); } private class ClickListenerImpl implements OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.openWifiButton: openWifi(); break; case R.id.closeWifiButton: closeWifi(); break; case R.id.openMobileDataButton: openMobileData(); break; case R.id.closeMobileDataButton: closeMobileData(); break; default: break; } } } //打开Wifi private void openWifi(){ if (!mWifiManager.isWifiEnabled()) { mWifiManager.setWifiEnabled(true); } } //关闭Wifi private void closeWifi(){ if (mWifiManager.isWifiEnabled()) { mWifiManager.setWifiEnabled(false); } } //打开移动数据 private void openMobileData(){ if (!isMobileDataEnabled) { try { mMethod=ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE); mMethod.invoke(mConnectivityManager, true); isMobileDataEnabled=true; } catch (Exception e) { } } } //关闭移动数据 private void closeMobileData(){ if (isMobileDataEnabled) { try { mMethod=ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE); mMethod.invoke(mConnectivityManager, false); isMobileDataEnabled=false; } catch (Exception e) { } } } }
main.xml如下:

转载地址:https://it9527.blog.csdn.net/article/details/40543357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:将十六进制颜色转换为int类型的数值
下一篇:PriorityQueue(优先队列)使用完整示例

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年05月02日 23时39分43秒