最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 通過(guò)代碼設(shè)置、打開(kāi)wifi熱點(diǎn)及熱點(diǎn)連接的實(shí)現(xiàn)代碼

 更新時(shí)間:2018年05月21日 11:46:41   作者:qq_24451593  
這篇文章主要介紹了Android 通過(guò)代碼設(shè)置、打開(kāi)wifi熱點(diǎn)及熱點(diǎn)連接的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

用過(guò)快牙的朋友應(yīng)該知道它們?cè)趦商煸O(shè)備之間傳輸文件的時(shí)候使用的是wifi熱點(diǎn),然后另一臺(tái)便連接這個(gè)熱點(diǎn)再進(jìn)行傳輸。快牙傳輸速度驚人應(yīng)該跟它的這種機(jī)制有關(guān)系吧。不知道它的搜索機(jī)制是怎樣的,但我想應(yīng)該可以通過(guò)熱點(diǎn)的名字來(lái)進(jìn)行判斷吧。下面我們就來(lái)探討一下如何自動(dòng)創(chuàng)建一個(gè)wifi熱點(diǎn)吧大笑

  創(chuàng)建wifi熱點(diǎn)首先需要手機(jī)支持,建議開(kāi)發(fā)的哥們整個(gè)好點(diǎn)的手機(jī),我們公司那些個(gè)山寨設(shè)備,幾近有一半是不支持熱點(diǎn)的;其實(shí)創(chuàng)建熱點(diǎn)很簡(jiǎn)單,先獲取到wifi的服務(wù),再配置熱點(diǎn)名稱(chēng)、密碼等等,然后再通過(guò)反射打開(kāi)它就OK了。

  下面我們看看創(chuàng)建熱點(diǎn)的代碼實(shí)現(xiàn):

package com.tel.lajoin.wifi.hotspot; 
import java.lang.reflect.Method; 
import android.app.Activity; 
import android.content.Context; 
import android.net.wifi.WifiConfiguration; 
import android.net.wifi.WifiManager; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
public class HotspotActivity extends Activity { 
 private WifiManager wifiManager; 
 private Button open; 
 private boolean flag=false; 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  // TODO Auto-generated method stub 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
  //獲取wifi管理服務(wù) 
  wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
  open=(Button)findViewById(R.id.open_hotspot); 
  //通過(guò)按鈕事件設(shè)置熱點(diǎn) 
  open.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
    //如果是打開(kāi)狀態(tài)就關(guān)閉,如果是關(guān)閉就打開(kāi) 
    flag=!flag; 
    setWifiApEnabled(flag); 
   } 
  }); 
 } 
 // wifi熱點(diǎn)開(kāi)關(guān) 
 public boolean setWifiApEnabled(boolean enabled) { 
  if (enabled) { // disable WiFi in any case 
   //wifi和熱點(diǎn)不能同時(shí)打開(kāi),所以打開(kāi)熱點(diǎn)的時(shí)候需要關(guān)閉wifi 
   wifiManager.setWifiEnabled(false); 
  } 
  try { 
   //熱點(diǎn)的配置類(lèi) 
   WifiConfiguration apConfig = new WifiConfiguration(); 
   //配置熱點(diǎn)的名稱(chēng)(可以在名字后面加點(diǎn)隨機(jī)數(shù)什么的) 
   apConfig.SSID = "YRCCONNECTION"; 
   //配置熱點(diǎn)的密碼 
   apConfig.preSharedKey="12122112"; 
    //通過(guò)反射調(diào)用設(shè)置熱點(diǎn) 
   Method method = wifiManager.getClass().getMethod( 
     "setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE); 
   //返回?zé)狳c(diǎn)打開(kāi)狀態(tài) 
   return (Boolean) method.invoke(wifiManager, apConfig, enabled); 
  } catch (Exception e) { 
   return false; 
  } 
 } 
} 

  布局就不寫(xiě)了吧,就一按鈕,人人都知道的東西,寫(xiě)了也沒(méi)啥意思。要實(shí)現(xiàn)文件傳輸,當(dāng)然我們還需要寫(xiě)一個(gè)連接熱點(diǎn)的客戶端吧。連接熱點(diǎn)的流程首先是搜索熱點(diǎn)然后再判斷熱點(diǎn)是否符合規(guī)則然后再進(jìn)行連接。

package com.tel.lajoin.wifiscan; 
import java.util.ArrayList; 
import java.util.List; 
import android.app.Activity; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.net.wifi.ScanResult; 
import android.net.wifi.WifiConfiguration; 
import android.net.wifi.WifiManager; 
import android.os.Bundle; 
public class MainActivity extends Activity { 
  private List<ScanResult> wifiList; 
  private WifiManager wifiManager; 
  private List<String> passableHotsPot; 
  private WifiReceiver wifiReceiver; 
  private boolean isConnected=false; 
  private Button connect; 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    init(); 
  } 
  /* 初始化參數(shù) */ 
  public void init() { 
    setContentView(R.layout.main); 
    connect=(Button)findViewById(R.id.connect); 
    wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
    wifiReceiver = new WifiReceiver(); 
    //通過(guò)按鈕事件搜索熱點(diǎn) 
    connect.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        wifiManager.startScan(); 
      } 
    });    
  } 
  /* 監(jiān)聽(tīng)熱點(diǎn)變化 */ 
  private final class WifiReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
      wifiList = wifiManager.getScanResults(); 
      if (wifiList == null || wifiList.size() == 0 || isConnected) 
        return; 
      onReceiveNewNetworks(wifiList); 
    } 
  } 
  /*當(dāng)搜索到新的wifi熱點(diǎn)時(shí)判斷該熱點(diǎn)是否符合規(guī)格*/ 
  public void onReceiveNewNetworks(List<ScanResult> wifiList){ 
    passableHotsPot=new ArrayList<String>(); 
    for(ScanResult result:wifiList){ 
      System.out.println(result.SSID); 
      if((result.SSID).contains("YRCCONNECTION")) 
        passableHotsPot.add(result.SSID); 
    } 
    synchronized (this) { 
      connectToHotpot(); 
    } 
  } 
  /*連接到熱點(diǎn)*/ 
  public void connectToHotpot(){ 
    if(passableHotsPot==null || passableHotsPot.size()==0) 
      return; 
    WifiConfiguration wifiConfig=this.setWifiParams(passableHotsPot.get(0)); 
    int wcgID = wifiManager.addNetwork(wifiConfig); 
    boolean flag=wifiManager.enableNetwork(wcgID, true); 
    isConnected=flag; 
    System.out.println("connect success? "+flag); 
  } 
  /*設(shè)置要連接的熱點(diǎn)的參數(shù)*/ 
  public WifiConfiguration setWifiParams(String ssid){ 
    WifiConfiguration apConfig=new WifiConfiguration(); 
    apConfig.SSID="\""+ssid+"\""; 
    apConfig.preSharedKey="\"12122112\""; 
    apConfig.hiddenSSID = true; 
    apConfig.status = WifiConfiguration.Status.ENABLED; 
    apConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
    apConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
    apConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
    apConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
    apConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
    apConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
    return apConfig; 
  } 
  @Override 
  protected void onDestroy() { 
    super.onDestroy(); 
    /*銷(xiāo)毀時(shí)注銷(xiāo)廣播*/ 
    unregisterReceiver(wifiReceiver); 
  } 
}

   代碼很簡(jiǎn)單,而且都有注釋的,相信大伙兒能夠看明白。  那就這樣吧,至于文件傳輸建議還是去看看socket相關(guān)的文章吧。

總結(jié)

以上所述是小編給大家介紹的Android 通過(guò)代碼設(shè)置、打開(kāi)wifi熱點(diǎn)及熱點(diǎn)的連接的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

政和县| 确山县| 正镶白旗| 太仓市| 镇沅| 措美县| 华坪县| 莱阳市| 淮北市| 清水县| 西峡县| 肃宁县| 双峰县| 台南县| 五指山市| 五家渠市| 太湖县| 云梦县| 呼图壁县| 卫辉市| 宣恩县| 吉隆县| 澄城县| 晋州市| 玉门市| 太和县| 连山| 侯马市| 子长县| 台前县| 大丰市| 于田县| 驻马店市| 韶关市| 邳州市| 阿克苏市| 类乌齐县| 赤水市| 阿拉善右旗| 永年县| 清涧县|