亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

  下面我們看看創(chuàng)建熱點的代碼實現(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管理服務 
  wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
  open=(Button)findViewById(R.id.open_hotspot); 
  //通過按鈕事件設置熱點 
  open.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
    //如果是打開狀態(tài)就關閉,如果是關閉就打開 
    flag=!flag; 
    setWifiApEnabled(flag); 
   } 
  }); 
 } 
 // wifi熱點開關 
 public boolean setWifiApEnabled(boolean enabled) { 
  if (enabled) { // disable WiFi in any case 
   //wifi和熱點不能同時打開,所以打開熱點的時候需要關閉wifi 
   wifiManager.setWifiEnabled(false); 
  } 
  try { 
   //熱點的配置類 
   WifiConfiguration apConfig = new WifiConfiguration(); 
   //配置熱點的名稱(可以在名字后面加點隨機數(shù)什么的) 
   apConfig.SSID = "YRCCONNECTION"; 
   //配置熱點的密碼 
   apConfig.preSharedKey="12122112"; 
    //通過反射調(diào)用設置熱點 
   Method method = wifiManager.getClass().getMethod( 
     "setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE); 
   //返回熱點打開狀態(tài) 
   return (Boolean) method.invoke(wifiManager, apConfig, enabled); 
  } catch (Exception e) { 
   return false; 
  } 
 } 
} 

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

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(); 
    //通過按鈕事件搜索熱點 
    connect.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        wifiManager.startScan(); 
      } 
    });    
  } 
  /* 監(jiā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); 
    } 
  } 
  /*當搜索到新的wifi熱點時判斷該熱點是否符合規(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(); 
    } 
  } 
  /*連接到熱點*/ 
  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ù)*/ 
  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(); 
    /*銷毀時注銷廣播*/ 
    unregisterReceiver(wifiReceiver); 
  } 
}

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

總結(jié)

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

相關文章

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

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

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

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

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

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

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

    Android實現(xiàn)動態(tài)高斯模糊效果

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

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

    本文詳細介紹了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鎖的巧妙實現(xiàn)方法示例

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

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

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

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

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

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

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

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

最新評論