欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

  創(chuàng)建wifi熱點(diǎn)首先需要手機(jī)支持,建議開發(fā)的哥們整個(gè)好點(diǎn)的手機(jī),我們公司那些個(gè)山寨設(shè)備,幾近有一半是不支持熱點(diǎn)的;其實(shí)創(chuàng)建熱點(diǎn)很簡單,先獲取到wifi的服務(wù),再配置熱點(diǎn)名稱、密碼等等,然后再通過反射打開它就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); 
  //通過按鈕事件設(shè)置熱點(diǎn) 
  open.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
    //如果是打開狀態(tài)就關(guān)閉,如果是關(guān)閉就打開 
    flag=!flag; 
    setWifiApEnabled(flag); 
   } 
  }); 
 } 
 // wifi熱點(diǎn)開關(guān) 
 public boolean setWifiApEnabled(boolean enabled) { 
  if (enabled) { // disable WiFi in any case 
   //wifi和熱點(diǎn)不能同時(shí)打開,所以打開熱點(diǎn)的時(shí)候需要關(guān)閉wifi 
   wifiManager.setWifiEnabled(false); 
  } 
  try { 
   //熱點(diǎn)的配置類 
   WifiConfiguration apConfig = new WifiConfiguration(); 
   //配置熱點(diǎn)的名稱(可以在名字后面加點(diǎn)隨機(jī)數(shù)什么的) 
   apConfig.SSID = "YRCCONNECTION"; 
   //配置熱點(diǎn)的密碼 
   apConfig.preSharedKey="12122112"; 
    //通過反射調(diào)用設(shè)置熱點(diǎn) 
   Method method = wifiManager.getClass().getMethod( 
     "setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE); 
   //返回?zé)狳c(diǎn)打開狀態(tài) 
   return (Boolean) method.invoke(wifiManager, apConfig, enabled); 
  } catch (Exception e) { 
   return false; 
  } 
 } 
} 

  布局就不寫了吧,就一按鈕,人人都知道的東西,寫了也沒啥意思。要實(shí)現(xiàn)文件傳輸,當(dāng)然我們還需要寫一個(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(); 
    //通過按鈕事件搜索熱點(diǎn) 
    connect.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        wifiManager.startScan(); 
      } 
    });    
  } 
  /* 監(jiān)聽熱點(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(); 
    /*銷毀時(shí)注銷廣播*/ 
    unregisterReceiver(wifiReceiver); 
  } 
}

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

總結(jié)

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

相關(guān)文章

  • Android使用Jni實(shí)現(xiàn)壓力鍋數(shù)據(jù)檢測效果示例

    Android使用Jni實(shí)現(xiàn)壓力鍋數(shù)據(jù)檢測效果示例

    這篇文章主要介紹了Android使用Jni實(shí)現(xiàn)壓力鍋數(shù)據(jù)檢測效果,涉及Android結(jié)合Jni實(shí)現(xiàn)進(jìn)度條模擬壓力鍋數(shù)據(jù)監(jiān)測效果的相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • Android性能調(diào)優(yōu)利器StrictMode應(yīng)用分析

    Android性能調(diào)優(yōu)利器StrictMode應(yīng)用分析

    StrictMode意思為嚴(yán)格模式,是用來檢測程序中違例情況的開發(fā)者工具。最常用的場景就是檢測主線程中本地磁盤和網(wǎng)絡(luò)讀寫等耗時(shí)的操作。這篇文章給大家介紹Android性能調(diào)優(yōu)利器StrictMode應(yīng)用分析,感興趣的朋友一起看看吧
    2018-01-01
  • Android Flutter實(shí)現(xiàn)上拉加載組件的示例代碼

    Android Flutter實(shí)現(xiàn)上拉加載組件的示例代碼

    既然列表有下拉刷新外當(dāng)然還有上拉加載更多操作了,本次就為大家詳細(xì)介紹如何利用Flutter實(shí)現(xiàn)為列表增加上拉加載更多的交互,感興趣的可以了解一下
    2022-08-08
  • Android實(shí)現(xiàn)動(dòng)態(tài)高斯模糊效果

    Android實(shí)現(xiàn)動(dòng)態(tài)高斯模糊效果

    在Android開發(fā)中常常會用到高斯模糊,但有的時(shí)候我們可能會需要一個(gè)圖片以不同的模糊程度展現(xiàn)出來,那如何實(shí)現(xiàn)呢,一起通過本文來學(xué)習(xí)學(xué)習(xí)吧。
    2016-08-08
  • Android開發(fā)環(huán)境搭建

    Android開發(fā)環(huán)境搭建

    本文詳細(xì)介紹了Android開發(fā)環(huán)境搭建,十分的詳盡,圖文并茂,有需要的小伙伴參考下。
    2015-01-01
  • 詳解Android aidl的使用方法

    詳解Android aidl的使用方法

    AIDL是Android中IPC(Inter-Process Communication)方式中的一種,AIDL是Android Interface definition language的縮寫。這篇文章主要介紹了Android aidl的使用方法,感興趣的朋友跟隨小編一起看看吧
    2020-07-07
  • Android?flutter?Dio鎖的巧妙實(shí)現(xiàn)方法示例

    Android?flutter?Dio鎖的巧妙實(shí)現(xiàn)方法示例

    這篇文章主要為大家介紹了Android?flutter?Dio鎖的巧妙實(shí)現(xiàn)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Android中AOP(面向切向編程)的深入講解

    Android中AOP(面向切向編程)的深入講解

    這篇文章主要給大家介紹了關(guān)于Android中AOP(面向切向編程)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • Android仿zaker用手向上推動(dòng)的特效開發(fā)【推動(dòng)門效果】(附demo源碼下載)

    Android仿zaker用手向上推動(dòng)的特效開發(fā)【推動(dòng)門效果】(附demo源碼下載)

    這篇文章主要介紹了Android仿zaker用手向上推動(dòng)的特效,結(jié)合完整實(shí)例形式分析了Android滑動(dòng)切換效果的實(shí)現(xiàn)步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • Android搜索框組件SearchView的基本使用方法

    Android搜索框組件SearchView的基本使用方法

    這篇文章主要為大家詳細(xì)介紹了Android搜索框組件SearchView的基本使用方法,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評論