关于Android wifi通信笔记
来源:互联网 发布:夏威夷旅行社 知乎 编辑:程序博客网 时间:2024/06/01 17:18
wifi所需权限,同样放于application外
<!-- wifi -->
<uses-permission android:name="android.permission.INTERNET" ></uses-permission> 允许打开网络套接字
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> //允许访问关闭wifi
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> //允许改变wifi状态
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> //允许使用电源锁定管理以使进程休眠或屏幕变暗
<uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission> //允许程序重新启动其他程序
**********************************************************************************************************************************
首先得了解异步任务:
类继承extends AsyncTask<Void, Void, Void>
对象调用execute()开启异步任务
结构:
execute 执行一个异步任务,需要我们在代码中调用此方法,触发异步任务的执行。
onPreExecute 在execute被调用后立即执行,一般用来在执行后台任务前对UI做一些标记
doInBackground 在onPreExecute完成后立即执行,用于执行较为费时的操作,此方法将接收输入参数和返回计算结果。
在执行过程中可以调用publishProgress来更新进度信息。
onProgressUpdate 在调用publishProgress时,此方法被执行,直接将进度信息更新到UI组件上。
onPostExecute 当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到UI组件上
代码:
/*构造方法*/
public ContTask()
{
}
/*子线程任务*/
public Void doInBackground(Void... params)
{
publishProgress(); //启动更新界面任务
return null;
}
/*更新界面任务*/
public void onProgressUpdate(Void... values)
{
}
**********************************************************************************************************************************
关闭异步取消连接
if (connectTask != null && connectTask.getStatus() == AsyncTask.Status.RUNNING) { //connectTask为异步对象
// 如果Task还在运行,则先取消它
connectTask.cancel(true);
try {
connectTask.getmSocket().close(); //关闭套接字
}
catch (IOException e) {
e.printStackTrace();
}
}
**********************************************************************************************************************************
连接wifi协议
Socket mSocket = new Socket(); //实例化socket
SocketAddress mSocketAddress = new InetSocketAddress(Constant.IP, Constant.port); //传入ip端口获取网络套接字
mSocket.connect(mSocketAddress, 3000); //连接wifi协议
此时可通过:
mSocket.getInputStream();// 得到输入流
mSocket.getOutputStream();// 得到输出流
**********************************************************************************************************************************
写命令
输出流.write(命令);// 写命令 byte类型
输出流.flush();// 发送并清空内存流
**********************************************************************************************************************************
读取命令
byte[] str = new byte[len];
输入流.read(str);
**********************************************************************************************************************************
写文件:
public static String file ; //文件存储目录和名字
file = Environment.getExternalStorageDirectory().getCanonicalPath()+"/"+"ywd.txt"; //指定路径要创建文件为ywd.txt
FileOutputStream fileoutput = new FileOutputStream(file,true); //创建文件,true设置为可追加
String st = "你好:";
fileoutput.write(st.getBytes()); //写入
fileoutput.flush(); //刷新文件
**********************************************************************************************************************************
读文件:
FileIntputStream fileintput = new FileInputStream(file); //打开
/*读取*/
byte[] temp = new byte[1024];
StringBuilder sb = new StringBuilder("");
int len = 0;
while((len=fileintput.read(temp)) >0)
{
sb.append(new String(temp,0,len));
}
<!-- wifi -->
<uses-permission android:name="android.permission.INTERNET" ></uses-permission> 允许打开网络套接字
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> //允许访问关闭wifi
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> //允许改变wifi状态
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> //允许使用电源锁定管理以使进程休眠或屏幕变暗
<uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission> //允许程序重新启动其他程序
**********************************************************************************************************************************
首先得了解异步任务:
类继承extends AsyncTask<Void, Void, Void>
对象调用execute()开启异步任务
结构:
execute 执行一个异步任务,需要我们在代码中调用此方法,触发异步任务的执行。
onPreExecute 在execute被调用后立即执行,一般用来在执行后台任务前对UI做一些标记
doInBackground 在onPreExecute完成后立即执行,用于执行较为费时的操作,此方法将接收输入参数和返回计算结果。
在执行过程中可以调用publishProgress来更新进度信息。
onProgressUpdate 在调用publishProgress时,此方法被执行,直接将进度信息更新到UI组件上。
onPostExecute 当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到UI组件上
代码:
/*构造方法*/
public ContTask()
{
}
/*子线程任务*/
public Void doInBackground(Void... params)
{
publishProgress(); //启动更新界面任务
return null;
}
/*更新界面任务*/
public void onProgressUpdate(Void... values)
{
}
**********************************************************************************************************************************
关闭异步取消连接
if (connectTask != null && connectTask.getStatus() == AsyncTask.Status.RUNNING) { //connectTask为异步对象
// 如果Task还在运行,则先取消它
connectTask.cancel(true);
try {
connectTask.getmSocket().close(); //关闭套接字
}
catch (IOException e) {
e.printStackTrace();
}
}
**********************************************************************************************************************************
连接wifi协议
Socket mSocket = new Socket(); //实例化socket
SocketAddress mSocketAddress = new InetSocketAddress(Constant.IP, Constant.port); //传入ip端口获取网络套接字
mSocket.connect(mSocketAddress, 3000); //连接wifi协议
此时可通过:
mSocket.getInputStream();// 得到输入流
mSocket.getOutputStream();// 得到输出流
**********************************************************************************************************************************
写命令
输出流.write(命令);// 写命令 byte类型
输出流.flush();// 发送并清空内存流
**********************************************************************************************************************************
读取命令
byte[] str = new byte[len];
输入流.read(str);
**********************************************************************************************************************************
写文件:
public static String file ; //文件存储目录和名字
file = Environment.getExternalStorageDirectory().getCanonicalPath()+"/"+"ywd.txt"; //指定路径要创建文件为ywd.txt
FileOutputStream fileoutput = new FileOutputStream(file,true); //创建文件,true设置为可追加
String st = "你好:";
fileoutput.write(st.getBytes()); //写入
fileoutput.flush(); //刷新文件
**********************************************************************************************************************************
读文件:
FileIntputStream fileintput = new FileInputStream(file); //打开
/*读取*/
byte[] temp = new byte[1024];
StringBuilder sb = new StringBuilder("");
int len = 0;
while((len=fileintput.read(temp)) >0)
{
sb.append(new String(temp,0,len));
}
1 0
- 关于Android wifi通信笔记
- android wifi p2p 通信
- android wifi通信1
- android wifi通信2
- android手机wifi热点通信
- Android设备间Wifi通信
- android:wifi通信(一)
- android:wifi通信(二)
- android wifi 连接笔记
- android学习Wifi笔记
- android wifi开发笔记
- Android笔记--WIFI开发
- Android关于WiFi以及WiFi热点操作
- android手机之间用wifi direct通信
- Android与PC端WIFI通信
- Android与PC端WIFI通信 .
- android app 与电脑wifi通信
- 基于wifi的android两端通信方案
- [置顶]libGDX开发环境搭建-Android Studio 最新版
- Android studio 导入github工程
- 同步mysql数据到ElasticSearch的最佳实践
- 8.java网络编程
- github使用学习
- 关于Android wifi通信笔记
- php实现下载
- java8实现spark streaming的wordcount
- android动态创建UI备忘
- 第16周项目1 验证算法(4)快速排序
- 第十四周项目1(1)--验证折半查找算法
- streamsets Data Collecotor启动流程分析
- 第15周项目3-B-树的基本操作
- Spring+Websocket实现消息的推送