Wi-Fi Direct

Android Wi-Fi Direct 开发 一、Wi-Fi Direct 简介     Wi-Fi Direct标准是指允许无线网络中的设备无需通过无线路由器即可相互连接。与蓝牙技术类似,这种标准允许无线设备以点对点形式互连,而且在传输速度与传输距离方面则比蓝牙有大幅提升。按照定义,Wi-Fi Direct设备是支持对等连接的设备,这种设备既支持基础设施网络,也支持P2P连接。Wi-Fi Direct设备能够作为典型的站点(STA 阅读详情


原文地址:http://wiki.eoeandroid.com/Wi-Fi_Direct


完成时间:8月8日

原文链接:http://developer.android.com/guide/topics/connectivity/wifip2p.html


目录

 [隐藏] 

Wi-Fi 直连

Wi-Fi 直连技术允许已经配备了相应硬件并预装了Android 4.0(API level 14)或更后的操作系统的设备在不需要Wi-Fi中间热点的支持下通过Wi-Fi直接互联的技术。使用这些API,你可以发现和连接其他支持此技术的设备,然后以距离远超蓝牙连接技术且速度更快的方式进行通信。这项技术对于一些多用户共享资料,比如多用户联机游戏或者相片分享等应用非常有用。

Wi-Fi直连技术的API包含以下主要部分:

  • 允许用户发现,请求然后连接对等设备的各种方法,定义在WifiP2pManager类中。
  • 允许用户定义收到调用WifiP2pManager类中方法成功或失败的通知的监听器。当用户调用WifiP2pManager类中的方法时,每一个方法都可以收到一个以参数形式传过来的特定监听。
  • 通知用户被Wi-Fi直连技术框架检测到的特定事件的意图,比如一个已丢掉的连接或者一个新的对等设备的发现等。

你经常会同时使用这三个主要组件的相关功能。例如,你可以为去调用android.net.wifi.p2p.WifiP2pManager.ActionListener) discoverPeers()方法而提供一个WifiP2pManager.ActionListener的监听器,这样以后你可以收到一个ActionListener.onSuccess()或者ActionListener.onFailure()方法的通知。一个WIFI_P2P_PEERS_CHANGED_ACTION意图同时也是当android.net.wifi.p2p.WifiP2pManager.ActionListener) discoverPeers()方法发现的对等设备列表发生改变时的一个广播。

API 概述

WifiP2pManager类提供了很多方法允许用户通过设备的Wi-Fi模块来进行交互,比如做一些如发现,连接其他对等设备的事情。下列的方法都是可以使用的: 表格1.Wi-Fi直连技术方法

方法名 详细描述

initialize()

通过Wi-Fi框架对应用来进行注册。这个方法必须在任何其他Wi-Fi直连方法使用之前调用。

connect()]

开始一个拥有特定设置的设备的点对点连接。

cancelConnect()

取消任何一个正在进行的点对点组的连接。

requestConnectInfo()

获取一个设备的连接信息。

createGroup()

以当前设备为组拥有者来创建一个点对点连接组。

removeGroup()

移除当前的点对点连接组。

requestGroupInfo()

获取点对点连接组的信息。

discoverPeers()

初始化对等设备的发现。

requestPeers()

获取当前发现的对等设备列表。

WifiP2pManager的方法可以让你在一个监听器里传递参数,这样Wi-fi直连框架就可以通知给你的窗体这个方法调用的状态。可以被使用的监听器接口和使用监听器的相应的WifiP2pManager的方法的调用都将在下面这张表中有所描述:

表格 2. Wi-Fi直连监听器方法

监听器接口 相关联的方法

WifiP2pManager.ActionListener

connect(), cancelConnect(), createGroup(), removeGroup(), and discoverPeers()

WifiP2pManager.ChannelListener

initialize()

WifiP2pManager.ConnectionInfoListener

requestConnectInfo()

WifiP2pManager.GroupInfoListener

requestGroupInfo()

WifiP2pManager.PeerListListener

requestPeers()

Wi-Fi直连技术的API定义了一些当特定的Wi-Fi直连事件发生时作为广播的意图,比如说当一个新的对等设备被发现,或者一个设备的Wi-Fi状态的改变。你可以在你的应用里通过创建一个处理这些意图的广播接收器来注册去接收这些意图。

Table 3. Wi-Fi 直连意图

意图名称 详细描述

WIFI_P2P_CONNECTION_CHANGED_ACTION

当设备的Wi-Fi连接信息状态改变时候进行广播。

WIFI_P2P_PEERS_CHANGED_ACTION

当调用discoverPeers()方法的时候进行广播。在你的应用里处理此意图时,你通常会调用requestPeers()去获得对等设备列表的更新。

WIFI_P2P_STATE_CHANGED_ACTION

当设备的Wi-Fi 直连功能打开或关闭时进行广播。

WIFI_P2P_THIS_DEVICE_CHANGED_ACTION

当设备的详细信息改变的时候进行广播,比如设备的名称

创建一个Wi-Fi直连意图使用的广播接收器

一个广播接收器允许你接收由android系统发布的意图广播,这样你的应用就可以对那些你感兴趣的事件作出响应。创建一个基本的Wi-Fi直连意图使用的广播接收器的步骤如下:

1.创建一个继承自BroadcastReceiver的类。对于类的构造,一般最常用的就是以WifiP2pManager, WifiP2pManager.Channel作为参数,同时这个广播接收器对应的窗体也将被注册进来。这个广播接收器可以像窗体发送更新或者在需要的时候可以访问Wi-Fi硬件或通信通道。

2.在广播接收器里,处理onReceive()方法里你感兴趣的意图。执行接收到的意图的任何需要的动作。比如,广播接收器接收到一个WIFI_P2P_PEERS_CHANGED_ACTION的意图,你就要调用requestPeers()方法去获得当前发现的对等设备列表。

下面的代码展示了怎样去创建一个典型的广播接收器。广播接收器接收一个WifiP2pManager对象和一个窗体对象作为参数然后利用这两个类去处理接收到的意图的特定的动作需求。

/**
 * A BroadcastReceiver that notifies of important Wi-Fi p2p events.
 */
public class WiFiDirectBroadcastReceiver extends BroadcastReceiver {
 
    private WifiP2pManager manager;
    private Channel channel;
    private MyWiFiActivity activity;
 
    public WiFiDirectBroadcastReceiver(WifiP2pManager manager, Channel channel,
            MyWifiActivity activity) {
        super();
        this.manager = manager;
        this.channel = channel;
        this.activity = activity;
    }
 
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
 
        if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) {
            // Check to see if Wi-Fi is enabled and notify appropriate activity
        } else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) {
            // Call WifiP2pManager.requestPeers() to get a list of current peers
        } else if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) {
            // Respond to new connection or disconnections
        } else if (WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION.equals(action)) {
            // Respond to this device's wifi state changing
        }
    }
}

创建一个Wi-Fi直连的应用

创建一个Wi-Fi直连的应用包括创建和注册一个广播接收器,发现其他设备,连接其他设备,然后传输数据等步骤。接下来的几个部分描述了怎么去做这些工作。

初始化设置

在使用Wi-Fi直连的API之前,你必须确保你的应用可以访问设备的硬件并且你的设备要支持Wi-Fi直连的通讯协议。如果Wi-Fi直连技术是支持的,你可以获得一个WifiP2pManager的实例对象,然后创建并注册你的广播接收器,然后开始使用Wi-Fi直连的API方法。

1.为设备的Wi-Fi硬件获取权限并在Android的清单文件中声明你的应用正确使用的最低SDK版本:

 
<uses-sdk android:minSdkVersion="14" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 
 

2.检查设备是否支持Wi-Fi直连技术。一种好的解决办法是当你的广播接收器接收到一个WIFI_P2P_STATE_CHANGED_ACTION意图。通知你的窗体Wi-Fi直连的状态和相应的反应。

@Override
public void onReceive(Context context, Intent intent) {
    ...
    String action = intent.getAction();
    if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) {
        int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1);
        if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) {
            // Wifi Direct is enabled
        } else {
            // Wi-Fi Direct is not enabled
        }
    }
    ...
}


3.在你的窗体的onCreate()方法里,获得一个WifiP2pManager的实例并调用initialize()方法通过Wi-Fi直连框架去注册你的应用。这个方法返回一个WifiP2pManager.Channel对象,是被用来连接你的应用和Wi-Fi直连框架的。你应该再创建一个以WifiP2pManager和WifiP2pManager.Channel为参数且关联你的窗体的广播接收器的实例。这样你的广播接收器就可以接收到你感兴趣的事件去通知你的窗体并更新它。它还可以让你在需要的时候操纵设备的Wi-Fi状态。

WifiP2pManager mManager;
Channel mChannel;
BroadcastReceiver mReceiver;
...
@Override
protected void onCreate(Bundle savedInstanceState){
    ...
    mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
    mChannel = mManager.initialize(this, getMainLooper(), null);
    mReceiver = new WiFiDirectBroadcastReceiver(manager, channel, this);
    ...
}
 

4.创建一个意图过滤器并把它添加在你的广播接收器需要处理的意图上。

IntentFilter mIntentFilter;
...
@Override
protected void onCreate(Bundle savedInstanceState){
    ...
    mIntentFilter = new IntentFilter();
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
    ...
}

5.注册你的广播接收器在窗体的onResume()方法,解除注册在onPause()方法中。

 
/* register the broadcast receiver with the intent values to be matched */
@Override
protected void onResume() {
    super.onResume();
    registerReceiver(mReceiver, mIntentFilter);
}
/* unregister the broadcast receiver */
@Override
protected void onPause() {
    super.onPause();
    unregisterReceiver(mReceiver);
}

当你获取到一个WifiP2pManager.Channel对象并且设置好你的广播接收器时,你的应用就可以调用Wi-Fi直连的方法并且可以接收Wi-Fi直连的意图。

你可以现在就通过调用WifiP2pManager中的方法取实现你的应用体验Wi-Fi直连技术的特性了。下面的章节描述了怎样去实现一些常用的操作,比如说发现其他设备和连接它们。


发现对等设备

要发现可以使用并连接的对等设备,调用discoverPeers()方法去检测在范围内的可使用设备。这个方法的调用是异步的同时如果你创建了一个WifiP2pManager.ActionListener监听器的话你会通过onSuccess()或者onFailure()方法收到发现成功或失败的消息。onSuccess()方法只能通知你发现的过程是否成功而不能提供任何关于发现设备的信息:

manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
    @Override
    public void onSuccess() {
        ...
    }
 
    @Override
    public void onFailure(int reasonCode) {
        ...
    }
});
 

如果发现过程成功且检测到了对等设备,系统将会广播出一个WIFI_P2P_PEERS_CHANGED_ACTION意图,这样你就可以利用广播监听器监听并获得发现设备的列表。当你的应用接收到WIFI_P2P_PEERS_CHANGED_ACTION意图时,你就可以调用requestPeers()方法来获取发现设备的列表,代码如下:

PeerListListener myPeerListListener;
...
if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) {
 
    // request available peers from the wifi p2p manager. This is an
    // asynchronous call and the calling activity is notified with a
    // callback on PeerListListener.onPeersAvailable()
    if (manager != null) {
        manager.requestPeers(channel, myPeerListListener);
    }
}


连接到设备

当你已经找到你要连接的设备在获得发现设备列表之后,调用connect()方法去连接指定设备。这个方法的调用需要一个包含待连接设备信息的WifiP2pConfig对象。你可以通过WifiP2pManager.ActionListener接收到连接是否成功的通知。下面的代码展示了怎样去连接一个想得到的连接:

//obtain a peer from the WifiP2pDeviceList
WifiP2pDevice device;
WifiP2pConfig config = new WifiP2pConfig();
config.deviceAddress = device.deviceAddress;
manager.connect(channel, config, new ActionListener() {
 
    @Override
    public void onSuccess() {
        //success logic
    }
 
    @Override
    public void onFailure(int reason) {
        //failure logic
    }
});

数据传输

一旦连接已经建立,你可以通过套接字来进行数据的传输。基本的数据传输步骤如下:

1.创建一个ServerSocket对象。这个服务端套接字对象等待一个来自指定地址和端口的客户端的连接且阻塞线程直到连接发生,所以把它建立在一个后台线程里。

2.创建一个客户端Socket.这个客户端套接字对象使用指定ip地址和端口去连接服务端设备。

3.从客户端给服务端发送数据。当客户端成功连接服务端设备后,你可以通过字节流从客户端给服务端发送数据。

4.服务端等待客户端的连接(使用accept()方法)。这个调用阻塞服务端线程直到客户端连接上,所以叫这个过程一个新的线程。当连接建立时,服务端可以接受来自客户端的数据。执行关于数据的任何动作,比如保存数据或者展示给用户。

下来的例子,从Wi-Fi直连示例改编而来,展示了怎样去创建服务端和客户端的连接和通信,并且使用一个客户端到服务端的服务来传输了一张JPEG图像。如需要得到一个完整的商业例子,请移步Wi-Fi直连示例。

public static class FileServerAsyncTask extends AsyncTask {
 
    private Context context;
    private TextView statusText;
 
    public FileServerAsyncTask(Context context, View statusText) {
        this.context = context;
        this.statusText = (TextView) statusText;
    }
 
    @Override
    protected String doInBackground(Void... params) {
        try {
 
            /**
             * Create a server socket and wait for client connections. This
             * call blocks until a connection is accepted from a client
             */
            ServerSocket serverSocket = new ServerSocket(8888);
            Socket client = serverSocket.accept();
 
            /**
             * If this code is reached, a client has connected and transferred data
             * Save the input stream from the client as a JPEG file
             */
            final File f = new File(Environment.getExternalStorageDirectory() + "/"
                    + context.getPackageName() + "/wifip2pshared-" + System.currentTimeMillis()
                    + ".jpg");
 
            File dirs = new File(f.getParent());
            if (!dirs.exists())
                dirs.mkdirs();
            f.createNewFile();
            InputStream inputstream = client.getInputStream();
            copyFile(inputstream, new FileOutputStream(f));
            serverSocket.close();
            return f.getAbsolutePath();
        } catch (IOException e) {
            Log.e(WiFiDirectActivity.TAG, e.getMessage());
            return null;
        }
    }
 
    /**
     * Start activity that can handle the JPEG image
     */
    @Override
    protected void onPostExecute(String result) {
        if (result != null) {
            statusText.setText("File copied - " + result);
            Intent intent = new Intent();
            intent.setAction(android.content.Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.parse("file://" + result), "image/*");
            context.startActivity(intent);
        }
    }
}


在客户端,使用客户端套接字连接服务端套接字并传输数据。这个例子从客户端的文件系统里传输了一张JPEG的图像到服务端。

 
Context context = this.getApplicationContext();
String host;
int port;
int len;
Socket socket = new Socket();
byte buf[]  = new byte[1024];
...
try {
    /**
     * Create a client socket with the host,
     * port, and timeout information.
     */
    socket.bind(null);
    socket.connect((new InetSocketAddress(host, port)), 500);
 
    /**
     * Create a byte stream from a JPEG file and pipe it to the output stream
     * of the socket. This data will be retrieved by the server device.
     */
    OutputStream outputStream = socket.getOutputStream();
    ContentResolver cr = context.getContentResolver();
    InputStream inputStream = null;
    inputStream = cr.openInputStream(Uri.parse("path/to/picture.jpg"));
    while ((len = inputStream.read(buf)) != -1) {
        outputStream.write(buf, 0, len);
    }
    outputStream.close();
    inputStream.close();
} catch (FileNotFoundException e) {
    //catch logic
} catch (IOException e) {
    //catch logic
}
 
/**
 * Clean up any open sockets when done
 * transferring or if an exception occurred.
 */
finally {
    if (socket != null) {
        if (socket.isConnected()) {
            try {
                socket.close();
            } catch (IOException e) {
                //catch logic
            }
        }
    }
}

WIFI无线网络之Wi-Fi Direct(Wi-Fi P2P)协议 Wi-Fi Direct(Wi-Fi P2P)是一种无需路由器即可实现设备直连的无线协议,支持高速率、低延迟通信,适用于文件共享、投屏等场景。相比传统Ad-Hoc模式,Wi-Fi Direct具备更优的安全性、服务发现和组网能力。与蓝牙相比,它提供更高的带宽但功耗较大。Miracast投屏技术正是基于Wi-Fi Direct实现。该协议通过Group Owner角色分配IP,支持WPA2加密,兼容主流操作系统,是高效点对点连接的现代解决方案。 阅读详情

相关推荐

WifiDirectDemo.zip

WIFI Direct Demo,基于Android的wifi无密码直连示例代码,代码实现了Android手机通过wifi无密码连接到设备,然后给设备配置wifi的SSID和登录密码,使设备可以连接到Wifi。代码中包括了手机端和设备端两部分,都在一个工程里。测试开发环境:手机端android8.0,设备端android5.1,如需要应用在高版本android平台上,请自行调试修改。注意:手机端targetSdkVersion需设置为低于26,26以上搜索不到wifip2p设备,在此暂未做适配。

android官方的wifi direct demo.....,Android WIFI Direct开发实例演示

实例 WIFIDirectDemo 改编 Android SDK 提供的实例,演示了通过 WIFI 搜寻连接点,建立连接,并进行数据传输的过程。该实例包含 5 个类,说明说下:WIFIDirectDemoActivity:用于注册 BroadcastReceiver,处理 UI,并管理连接点的生命周期。WiFiDirectBroadcastReceiver:用于接收与 WIFI Direct 功能...

weixin_39878855的博客 1027

wifi direct demo

wifi direct demo wlan直连功能

Android WiFi Direct文件传输

Android WiFi Direct文件传输1.说明2.注意事项2.1 确保申请必要权限2.2 使用startService2.3 从group owner 发送数据到client2.4 设备差异3.代码 1.说明 最近写个应用,需要用到wifi direct(Android中也叫WifiP2P)进行文件传输,其中,主要的实现流程官方文档有介绍,这里不再赘述。具体实现,参考了这位大佬的。 2.注...

山城过雨 2438

WIFI DIRECT demo

Wi-Fi直连技术的API包含以下主要部分: 允许用户发现,请求然后连接对等设备的各种方法,定义在WifiP2pManager类中。 允许用户定义收到调用WifiP2pManager类中方法成功或失败的通知的监听器。当用户调用WifiP2pManager类中的方法时,每一个方法都可以收到一个以参数形式传过来的特定监听。 通知用户被Wi-Fi直连技术框架检测到的特定事件的意图,比如一个已丢掉的连接或者一个新的对等设备的发现等。

Android端WifiDirect文件传输Demo

Android端WifiDirect文件传输Demo,基于Google官方WifiDirect修改,实现了文件传输。

【亲测免费】 WiFi Direct Demo

WiFi Direct Demo 这是一个简单的Android应用程序,演示了如何使用WiFi Direct API创建一个点对点的连接。 项目用途 该项目可以用于以下场景: 在没有Wi-Fi网络的情况下,两个设备之间进行文件传输。 建立直接的、低延迟的游戏会话。 特点 简单易用的界面,只需点击几下即可建立连接。 支持多设备之间的连接。 可以查看连接设备的信息,如设备名称、地址等。 使用方...

gitblog_00086的博客 552

WiFiDirectDemo官方例子资源

WiFiDirectDemo官方例子资源,供大家学习和参考!

android_Demo:WifiDirect

WifiDirect的Demo.   WifiP2pManager提供了一些用于跟设备的Wi-Fi硬件相互作用的方法,这些方法完成设备的彼此发现和连接。   WifiP2pManager.ChannelListener接口,Interface for callback invocation when framework channel is lost.   WifiP2pManager类

liu31187的专栏 953

Moveit Servo学习

MoveIt Servo功能与配置指南 摘要:本文介绍了MoveIt Servo的功能特性,包括支持关节速度、末端执行器速度和位置控制,以及安全功能如奇点检查、碰撞检测等。通过示例展示了如何运行伺服控制demo,详细解析了关键节点和话题。最后以睿尔曼rml_63机器人为例,讲解了如何自定义伺服配置文件,包括环境设置、输入输出参数配置、平滑滤波器和规划场景监控等关键配置项。文章提供了从基础使用到自定义机器人配置的完整指导,帮助开发者实现高效的实时运动控制。

Fisher的博客 1173

微信小程序导航栏滑动一定距离后固定到顶部

接上一篇文章的内容,通常在一个页面中部会有一个导航栏查看不同的内容,这篇文章旨在实现在页面下滑的过程中导航栏自动固定到顶部以便我们阅读过程中的切换。 下滑一段距离后自动固定到顶部 首先,思考这个功能应该是怎么实现的: 在页面下滑的过程中,我们希望系统应当能识别下滑了多少距离,当原本的导航栏逐渐被遮住以后(遮住意味着下滑了特定距离),触发这个功能,执行另一种样式,将导航栏固定在页面顶端,同时如果我们将页面往上滑,系统能识别到原来的导航栏能露出来了(即距离顶端的高度小于一个特定的值),这时候又执行最初的样式

Oblivision_Geek的博客 4030

wifi直连 android,Android 4.0 WiFiDirect (WiFi直连)功能

该楼层疑似违规已被系统折叠隐藏此楼查看此楼Android 4.0引入了一项很重要的技术就是 WiFiDirect (WiFi直连) ,它可以让WiFi设备无需热点即可实现两个WiFi设备的P2P数据交换。使用最新的Android 4.0 SDK,最低API Level 14才支持此项技术,在SDK的例子中我们可以看到很多界面用到了Android 3.0时代的Fragment容器。首先我们需要实现...

weixin_35801556的博客 1412

教程 | 基于遥感生态指数(RSEI)模型的生态环境质量评价

使用数据:Landsat8 OLI数据,行列号:122036,时间:20210527。 使用软件:ENVI5.3、ArcGIS10.2 二、4个指数计算 下述的四个指数的计算均是通过ENVI软件中的Band math工具进行计算。 (1)绿度指数 在常用的植被指数当中,归一化植被指数 ( NDVI) 能够有效地反映植被的生长情况与植被 覆盖度等重要植被的物理性质,检测灵敏度高,能 够较为真实地展现区域的地表空间变化规律,已经得到广泛利用,本文采用 NDVI 指数来代表绿度指数。 在ENV

YW_remote的博客 1万+

Wi-Fi Direct 亲身体验

http://blog.chinaunix.net/uid-20514606-id-3219282.html 简单介绍下 Wi-Fi Direct 的功能:        就是实现在没有AP 情况下的P2P(peer to peer)连接 . 具体可以看下: http://www.wi-fi.org/discover-and-learn/wi-fi-direct 网上对

Gabby 2570

配置权重_高盛都在用的资产配置模型,BL贝叶斯框架改进Markowitz

前面我们说到,markoviz的均值-方差模型,第一次,用数学的方式严格证明了投资组合存在最优的权重,但它的学术意义大于实战。主要原因有两个:1,人们很难有效的预测期望收益率;2,最优资产组合配置对输入非常敏感,结果往往难以被人理解。还有就是在投资中,定量只是完成初步构建,同步的定性判断依然非常重要:第一,投资者的认知偏好:倾向于关注他们认为被低估,但有发展潜力或者可以确定相对交易价值的小部分股票...

weixin_39892309的博客 715

Python之afdx包语法、参数和实际应用案例

Python 的 afdx 包是针对 AFDX 协议的轻量级开发工具,专注于 AFDX 数据帧的解析、构造、发送/接收、协议合规性校验等核心能力,广泛应用于航空电子设备测试、仿真、数据监控等场景。

王国平的博客 982

Wi-Fi direct 连接步骤

StepsPeer 1Peer 2123p2p_find45678StepsPeer 1Peer 2123p2p_find456789StepsPeer 1Peer 2123p2p_find45678StepsPeer 1Peer 2123p2p_find456789StepsPeer 1Peer 212p2p_find3p2p_find45678StepsPeer 1。

maimang1001的专栏 1002

基于VSCode+clangd插件打造高效C++开发环境之四:clangd配置

本文介绍如何配置VSCode+clangd插件进行高效C++开发。重点内容包括:1)生成compile_commands.json文件,通过ninja工具提取编译命令并使用gen_compdb脚本转换;2)配置clangd命令行参数,如设置后台索引、并行度等;3)编写.clangd配置文件,调整编译标志和诊断选项;4)添加.clang-format文件定义代码风格;5)在VSCode中添加远程服务器工作目录。配置完成后需重启clangd服务使更改生效。文章还提供了MTK/QCOM等不同平台生成compile

5061

【教程】Microsoft Wi-Fi Direct Virtual关闭方法

使用Win10电脑的用户应该有不少会发现自己的电脑网络适配器里面多了一个设备叫“Microsoft Wi-Fi Direct Virtual Adapter”,这个设备不仅仅存在,而且还会对外发射wifi信号,很是头疼。如果这时你禁用了,不到2秒的时间会再创建一个出来。所以这种解决办法根本不行。 解决办法 废话不多说,直接说办法。如果你是Win10的电脑,出现了这种情况,那么你的电脑...

点滴记忆 6万+

如何给K8S配置一个具有永久有效的kubeconfig

在 Amazon EKS 环境中,Kubernetes 的认证机制与 AWS IAM 深度集成,通过aws-iam-authenticator动态生成临时凭证。这种设计虽然增强了安全性,但给需要持久化凭证的工具链(如 CI/CD 系统中的 KubeVela)带来了挑战。具体表现为:临时凭证失效​​:默认 Token 有效期为 15 分钟至 1 小时;​​IAM 角色限制​​:直接使用aws eks get-token生成的凭证无法持久化

小杨同学的博客 660

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Wi-Fi Direct百科

Wi-Fi Direct简介   2010年10月,Wi-Fi Alliance(wi-fi联盟)发布Wi-Fi Direct白皮书,白皮书中介绍了关于这种技术的基本信息、这种技术的特点和这种技术的功能,Wi-Fi Direct标准是指允许无线网络中的设备无需通过无线路由器即可相互连接。与蓝牙技术类似,这种标准允许无线设备以点对点形式互连,不过在传输速度与传输距离方面则比蓝牙有大幅提升。 ...

chendy 340

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android Wi-Fi Direct 开发指南

Android Wi-Fi Direct 开发指南 (本文为Android官方开发文档译文)  使用Wi-Fi Direct技术可以让具备硬件支持的设备在没有中间接入点的情况下进行直接互联。Android 4.0(API版本14)及以后的系统都提供了对Wi-Fi Direct的API支持。通过对这些API的使用,开发者可以实现支持Wi-Fi Direct的设备间进行相互探测和连接,从而获得

yichigo的专栏 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Wi-Fi Direct(Wi-Fi P2P)

转自:http://www.zhihu.com/question/20770501

hjwang1的专栏 1611
上一篇: wifi记录
下一篇: android4.0新控件Switch方法解析
androidboy365
博客等级 码龄16年 35粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值