用过快牙的朋友应该知道它们在两天设备之间传输文件的时候使用的是wifi热点,然后另一台便连接这个热点再进行传输。快牙传输速度惊人应该跟它的这种机制有关系吧。不知道它的搜索机制是怎样的,但我想应该可以通过热点的名字来进行判断吧。下面我们就来探讨一下如何自动创建一个wifi热点吧android 代码设置、打开wifi热点及热点的连接

  创建wifi热点首先需要手机支持,建议开发的哥们整个好点的手机,我们公司那些个山寨设备,几近有一半是不支持热点的;其实创建热点很简单,先获取到wifi的服务,再配置热点名称、密码等等,然后再通过反射打开它就OK了。

  下面我们看看创建热点的代码实现:

 1 package com.tel.lajoin.wifi.hotspot;
 2 
 3 import java.lang.reflect.Method;
 4 
 5 import android.app.Activity;
 6 import android.content.Context;
 7 import android.net.wifi.WifiConfiguration;
 8 import android.net.wifi.WifiManager;
 9 import android.os.Bundle;
10 import android.view.View;
11 import android.widget.Button;
12 
13 public class HotspotActivity extends Activity {
14 private WifiManager wifiManager;
15 private Button open;
16 private boolean flag=false;
17 
18 @Override
19 protected void onCreate(Bundle savedInstanceState) {
20 // TODO Auto-generated method stub
21 super.onCreate(savedInstanceState);
22 setContentView(R.layout.main);
23 //获取wifi管理服务
24 wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
25 open=(Button)findViewById(R.id.open_hotspot);
26 //通过按钮事件设置热点
27 open.setOnClickListener(new View.OnClickListener() {
28 @Override
29 public void onClick(View v) {
30 //如果是打开状态就关闭,如果是关闭就打开
31 flag=!flag;
32 setWifiApEnabled(flag);
33 }
34 });
35 }
36 
37 // wifi热点开关
38 public boolean setWifiApEnabled(boolean enabled) {
39 if (enabled) { // disable WiFi in any case
40 //wifi和热点不能同时打开,所以打开热点的时候需要关闭wifi
41 wifiManager.setWifiEnabled(false);
42 }
43 try {
44 //热点的配置类
45 WifiConfiguration apConfig = new WifiConfiguration();
46 //配置热点的名称(可以在名字后面加点随机数什么的)
47 apConfig.SSID = "YRCCONNECTION";
48 //配置热点的密码
49 apConfig.preSharedKey="12122112";
50      //通过反射调用设置热点
51 Method method = wifiManager.getClass().getMethod(
52 "setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
53 //返回热点打开状态
54 return (Boolean) method.invoke(wifiManager, apConfig, enabled);
55 } catch (Exception e) {
56 return false;
57 }
58 }
59 }
View Code

相关文章: