android手机wifi热点通信代码,android手机wifi热点通信

import java.io.BufferedReader;

import java.io.FileReader;

import java.lang.reflect.*;

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;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

public class AdHocActivity extends Activity {

private final String TAG = "WifiSoftAP";

public static final String WIFI_AP_STATE_CHANGED_ACTION =

"android.net.wifi.WIFI_AP_STATE_CHANGED";

public static final int WIFI_AP_STATE_DISABLING = 0;

public static final int WIFI_AP_STATE_DISABLED = 1;

public static final int WIFI_AP_STATE_ENABLING = 2;

public static final int WIFI_AP_STATE_ENABLED = 3;

public static final int WIFI_AP_STATE_FAILED = 4;

TextView result;

WifiManager wifiManager;

WifiReceiver receiverWifi;

List wifiList;

private List wifiConfiguration;

StringBuilder resultList = new StringBuilder();

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

result = (TextView) findViewById(R.id.result);

wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

Button btnOpenAP = (Button)this.findViewById(R.id.btnOpenAP);

btnOpenAP.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

if (!isApEnabled()){

setWifiApEnabled(true);

}

}

});

Button btnCloseAP = (Button)this.findViewById(R.id.btnCloseAP);

btnCloseAP.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

if (isApEnabled()){

setWifiApEnabled(false);

}

}

});

Button btnScan = (Button)this.findViewById(R.id.btnScan);

btnScan.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

if (!wifiManager.isWifiEnabled()) {

wifiManager.setWifiEnabled(true);

}

StartScan();

}

});

Button btnConnectAP = (Button)this.findViewById(R.id.btnConnectAP);

btnConnectAP.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

connectAP();

}

});

Button btnGetConnectedIP = (Button)this.findViewById(R.id.btnGetConnectedIP);

btnGetConnectedIP.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

ArrayList connectedIP = getConnectedIP();

resultList = new StringBuilder();

for(String ip : connectedIP){

resultList.append(ip);

resultList.append("\n");

}

result.setText(resultList);

}

});

}

protected void onPause() {

if (receiverWifi != null)

unregisterReceiver(receiverWifi);

super.onPause();

}

protected void onResume() {

if (receiverWifi != null)

registerReceiver(receiverWifi, new IntentFilter(

WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

super.onResume();

}

public void StartScan() {

wifiManager.setWifiEnabled(true);

receiverWifi = new WifiReceiver();

registerReceiver(receiverWifi, new IntentFilter(

WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

wifiManager.startScan();

result.setText("\nScaning...\n");

}

public boolean setWifiApEnabled(boolean enabled) {

if (enabled) { // disable WiFi in any case

wifiManager.setWifiEnabled(false);

}

try {

WifiConfiguration apConfig = new WifiConfiguration();

apConfig.SSID = "GossipDog";

apConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

apConfig.preSharedKey = "abcdefgh";

Method method = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);

return (Boolean) method.invoke(wifiManager, apConfig, enabled);

} catch (Exception e) {

Log.e(TAG, "Cannot set WiFi AP state", e);

return false;

}

}

public int getWifiApState() {

try {

Method method = wifiManager.getClass().getMethod("getWifiApState");

return (Integer) method.invoke(wifiManager);

} catch (Exception e) {

Log.e(TAG, "Cannot get WiFi AP state", e);

return WIFI_AP_STATE_FAILED;

}

}

public boolean isApEnabled() {

int state = getWifiApState();

return WIFI_AP_STATE_ENABLING == state || WIFI_AP_STATE_ENABLED == state;

}

public void connectAP() {

WifiConfiguration gossipDog = new WifiConfiguration();

for (WifiConfiguration ap : wifiConfiguration) {

if (ap.SSID == "GossipDog") {

gossipDog = ap;

}

}

if (gossipDog != null) {

gossipDog.preSharedKey = "abcdefgh";

gossipDog.networkId = wifiManager.addNetwork(gossipDog);

wifiManager.enableNetwork(gossipDog.networkId, true);

result.setText("连接");

}

}

private ArrayList getConnectedIP() {

ArrayList connectedIP = new ArrayList();

try {

BufferedReader br = new BufferedReader(new FileReader("/proc/net/arp"));

String line;

while ((line = br.readLine()) != null) {

String[] splitted = line.split(" +");

if (splitted != null && splitted.length >= 4) {

String ip = splitted[0];

connectedIP.add(ip);

}

}

} catch (Exception e) {

e.printStackTrace();

}

return connectedIP;

}

class WifiReceiver extends BroadcastReceiver {

public void onReceive(Context c, Intent intent) {

resultList = new StringBuilder();

wifiList = wifiManager.getScanResults();

for (int i = 0; i < wifiList.size(); i++) {

resultList.append(new Integer(i + 1).toString() + ".");

resultList.append((wifiList.get(i)).toString());

resultList.append("\n\n");

}

result.setText(resultList);

wifiConfiguration = wifiManager.getConfiguredNetworks();

}

}

}

下面是xml文件 <?xml version="1.0" encoding="utf-8"?>

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:id="@+id/btnOpenAP"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="开启AP"

/>

android:id="@+id/btnCloseAP"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="关闭AP"

/>

android:id="@+id/btnScan"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="扫描网络"

/>

android:id="@+id/btnConnectAP"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="配对"

/>

android:id="@+id/btnGetConnectedIP"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="查看已连接设备IP"

/>

android:id="@+id/result"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text=""

android:gravity="center"

/>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值