关于台式机设定网络连接接

Android通过代码打开和关闭网络连接
我们都知道,要打开网络连接是要有相应的权限的,但是目前Android中并没有直接打开和关闭网络连接的权限,因此我们只能通过APN来实现:
由于Android对于APN的网络API没有公开,不过我们可以阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭APN。
其实原理很简单 :
1 、 当开启APN的时候,设置一个正确的移动或者联通的APN
2、 关闭的时候设置一个错误APN就会自动关闭网络
下面是源代码:
package com.mandr.network.
import java.util.ArrayL
import java.util.L
import android.app.A
import android.content.ContentV
import android.database.C
import android.net.U
import android.os.B
import android.util.L
import android.view.V
import android.widget.B
public class OpenNetworkActivity extends Activity {
&private Button open,
&Uri uri =
Uri.parse("content://telephony/carriers");
&@Override
&public void onCreate(Bundle savedInstanceState)
&&super.onCreate(savedInstanceState);
&&setContentView(R.layout.main);
&&open = (Button)
findViewById(R.id.open);
&&close = (Button)
findViewById(R.id.close);
&&open.setOnClickListener(new
View.OnClickListener() {
void onClick(View v) {
&&&&openAPN();
&&close.setOnClickListener(new
View.OnClickListener() {
void onClick(View v) {
&&&&closeAPN();
&public void openAPN() {
&&List list = getAPNList();
&&for (APN apn : list) {
&&&ContentValues
cv = new ContentValues();
&&&cv.put("apn",
APNMatchTools.matchAPN(apn.apn));
&&&cv.put("type",
APNMatchTools.matchAPN(apn.type));
&&&getContentResolver().update(uri,
cv, "_id=?",
String[] { apn.id });
&public void closeAPN() {
&&List list = getAPNList();
&&for (APN apn : list) {
&&&ContentValues
cv = new ContentValues();
&&&cv.put("apn",
APNMatchTools.matchAPN(apn.apn) + "mdev");
&&&cv.put("type",
APNMatchTools.matchAPN(apn.type) + "mdev");
&&&getContentResolver().update(uri,
cv, "_id=?",
String[] { apn.id });
&private List getAPNList() {
&&String tag =
"Main.getAPNList()";
&&// current不为空表示可以使用的APN
&&String projection[] = {
"_id,apn,type,current" };
&&//查询数据库
&&Cursor cr =
this.getContentResolver().query(uri, projection, null,
&&List list = new
ArrayList();
&&while (cr != null &&
cr.moveToNext()) {
&&&Log.d(tag,
&&&&&cr.getString(cr.getColumnIndex("_id"))
cr.getString(cr.getColumnIndex("apn")) + "&
cr.getString(cr.getColumnIndex("type")) + "&
cr.getString(cr.getColumnIndex("current")));
&&&APN a = new
cr.getString(cr.getColumnIndex("_id"));
&&&a.apn =
cr.getString(cr.getColumnIndex("apn"));
&&&a.type =
cr.getString(cr.getColumnIndex("type"));
&&&list.add(a);
&&if (cr != null)
&&&cr.close();
&public static class APN {
APNMatchTools.java
package com.mandr.network.
public class APNMatchTools {
&public static class APNNet {
&&public static String CMWAP =
&&public static String CMNET =
&&// 中国联通3GWAP设置 中国联通3G因特网设置
中国联通WAP设置 中国联通因特网设置
&&// 3gwap 3gnet uniwap
&&public static String GWAP_3
= "3gwap";
&&public static String GNET_3
= "3gnet";
&&public static String UNIWAP
= "uniwap";
&&public static String UNINET
= "uninet";
&public static String matchAPN(String
currentName) {
&&if ("".equals(currentName) ||
null == currentName) {
&&currentName =
currentName.toLowerCase();
(currentName.startsWith(APNNet.CMNET))
APNNet.CMNET;
(currentName.startsWith(APNNet.CMWAP))
APNNet.CMWAP;
(currentName.startsWith(APNNet.GNET_3))
APNNet.GNET_3;
(currentName.startsWith(APNNet.GWAP_3))
APNNet.GWAP_3;
(currentName.startsWith(APNNet.UNINET))
APNNet.UNINET;
(currentName.startsWith(APNNet.UNIWAP))
APNNet.UNIWAP;
(currentName.startsWith("default"))
"default";
&&// return
currentName.substring(0, currentName.length() -
&&// SUFFIX.length());
最后别忘了加入修改APN的权限:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。关于开机网络连接慢的解决办法
关于开机网络连接慢的解决办法
责任编辑:邦俊&
  当您的电脑在使用一些时间后,每次开机后都要等几分钟才能反应,下面是小编收集的资料,供大家参考!
  网络连接才能正常。一般出现这种情况主要是电脑自动获得IP地址和开机启动的程序过多造成的。
  电脑开机后网络连接慢解决办法
  一、给电脑设置固定IP。前面在网络连接受限制或无连接已经讲到设置固定IP的方法,这里再详细说一些设置方法,如何给电脑设置ip地址。
  XP系统:控制面板&&网络连接&&本地连接&右键点击&属性&&双击&Internet 协议(TCP/IP)&&&选择&使用下面的IP地址&。
  Windows7系统:控制面板-网络和Internet-网络和共享网络;右键单击&本地/无线连接&-属性;IP地址等信息查看方法为:开始&&运行&&cmd&&确认,在弹出的窗口输入命令提示:ipconfig /all,然后可以看到自己电脑IP的详细信息,再把IP信息填入刚刚的&Internet 协议(TCP/IP)&里面,IP Address为IP地址,子网掩码为:255.255.255.0,Default Gateway为默认网关,DNS Servers为DNS服务器地址。输入完成后确认保存即可。
  二、计算机开机后启动程序运行太多,占用太多的内存而电脑本身主存比较小处理器跟不上导致系统很慢,网络连接也很慢。解决办法:开始-运行-msconfig---启动;控制面板&&管理工具&&服务,介绍不必要的服务。或者使用360卫士,金三卫士等工具关闭不要的开机启动项。清理系统垃圾文件,卸载C盘(系统盘)安装的不必要程序。
  打开&系统配置实用程序&窗口,切换到&启动&选项卡:
  只需要保留&ctfmon&启动项目外(这个项目是系统输入法的进程项目,如果把这个项目去掉了会造成输入法不能开机启动的现象),其余的全部去掉复选框,单击&确定&按钮,弹出&您必须重新启动您的计算机以便某些由系统配置所作的更改生效&的提示对话框,请单击&退出而不重新启动&按钮;
  三、清理磁盘和整理磁盘碎片。
  1、在我的电脑窗口,右击要清理的盘符&&属性&&&清理磁盘&--勾选要删除的文件--确定--是;
  2、清除临时文件,开始&运行&输入 %temp% --确定;
  3、用优化大师或超级兔子清理注册表和垃圾文件。
  四、修改注册表加快网络连接速度。打开注册表编辑器找到HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows,增加一个名为Psched的项,在Psched右面窗口增加一个Dword值NonBestEffortLimit数值数据为0。
本文已影响人
All rights Copyright2016
All rights reserved服务热线: 5
地址: 嘉兴市南湖区富润路101号320室
浙ICP备号 ---Neutron网络入门 | UnitedStack有云
深度博文的激烈碰撞
有云博客沉淀了有云工程师们的智慧,碰撞着相互学习进步,感受不一样的有云文化,展示不一样的有云风采。
我们将及时回复您
400-898-5401
北京市海淀区东北旺西路8号中关村软件广场4号楼C座101
Copyright (C) 2017
优思得云计算科技(北京)有限公司
Copyright (C)2017 优思得云计算科技(北京)有限公司 UnitedStack Inc. All Rights Reserved.

我要回帖

更多关于 笔记本如何用宽带连接 的文章

 

随机推荐