当前位置:首页 » 安卓系统 » androidp2p

androidp2p

发布时间: 2022-10-08 06:19:25

㈠ 如何建立Android 4.4.2设备和ubuntu的P2P连接

在PC端执行命令的流程
iwpriv waln0 p2p_set enable=1
iwpriv wlan0 p2p_set ssid="DIRECT_Test"
iwpriv wlan0 p2p_set setDN="DIRECT-RTL"

iwlist wlan0 scan //可以找到PAD设备,显示MAC-addr

iwpriv wlan0 p2p_set setDN="DIRECT-RTL"
iwpriv wlan0 p2p_set prov_disc=MAC-addr_dispaly

iwpriv wlan0 p2p_set got_wpsinfo=1

iwpriv wlan0 p2p_set nego=MAC-addr //PAD 端会弹出邀请的对话框,同时显示PIN码

上述命令执行完之后执行
iwpriv wlan0 p2p_get status
返回STATUS=10 //nego success

㈡ 在app上 进行视频对话可以吗需要什么技术

在APP上可以进行视频对话,不需要什么技术,像QQ和腾讯微信都是可以直接视频对话的,点开聊天框旁边的加号,就会出现视频聊天,直接点开就可以了。

㈢ Android开发P2P聊天是怎么实现的

1、注册用户((Openfire服务器),已搭建好服务器。
2、好友添加(不用分组,在聊天界面直接显示添加的好友)
3、P2P聊天(文字功能)
4、保存查看聊天记录:用户可查看与好友的聊天记录信息
5、好友上下线自动刷新各自头像列表,点击头像进入聊天界面
6、demo要支持android手机、7寸平板和10平板.

㈣ bcm4329怎么在android中实现softap和p2p功能

1,是否需要bcm提供专门的wpa_supplicant,hostapd,
>> wpa_supplicant 是开源组织提供,但是对于一些特殊的功能brcm会做些修改。
比如WAPI功能,满足CMCC要求也是厂家自行修改

2,bcm驱动是不是只支持wext接口?
应该不是,默认6.0选用WEXT,8.0使用nl80211
3,支持softap的,client,p2p的驱动是否是三个驱动,还是仅仅firmware不同?
google设计时候对于固件名字是分开的,使用三个名字。但是实际前两个是同一个固件可以。

4,是不是android4.0中wpa_supplciant_8对nl80211接口还没完善,有几个空函数,选择nl80211接口会编译错误:logo如下:
已经没有问题了,4.0在hardware/目录下有bcmdhd的针对私有命令的封装,需要编译进去

㈤ android 视频 p2p

p2p可能不能实现实时播放。因为p2p是分段传输的,有可能你传输了尾部的一段视频,前面的视频段还没穿,造成播放卡顿。
要是实时传输,还是两台电脑之间通过udp协议直接传的好。
或者给p2p加上限制,视频段必须按顺序传播。

说实话我不太看得懂你的意思。
如果你说的是获取别人手机上的视频并边下载边播放的话,那么udp协议传输文件即可。
如果你说的是获取别人正在录制的视频并播放的话,那么有点类似视频通话,两个端口同步传输图像和文件,还是用udp协议。
所以我不知道你为什么要纠结于p2p?

安卓手机里wifi-P2P连接怎么用

WIFI Direct这个是连接wifi用的,打开后,会自动连接可用的无线。

㈦ android wifip2p怎么用

为了使用Wi-Fi P2P,要在你的清单文件中添加 CHANGE_WIFI_STATE 、 ACCESS_WIFI_STATE 、和 INTERNET 权限。即使Wi-FiP2P不要求互联网连接,但它要使用标准的Java套接字,并且Android在使用这些套接字时要求申请这些权限,因此要在清单中申请INTERNET权限。

<manifestxmlns:android="http //schemas android com/apk/res/android" package="com.example.android.nsdchat"
...

<uses-permission
android:required="true"
android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission
android:required="true"
android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission
android:required="true"
android:name="android.permission.INTERNET"/>
...

添加本地服务

如果你要提供一个本地服务,那么就需要把这个服务注册为可发现的。本地服务被注册后,框架就会自动的响应来自对等点的服务发现请求。

以下是创建本地服务的步骤:

1. 创建一个 WifiP2pServiceInfo 对象;

2. 填入你的服务相关的信息;

3. 调用addLocalService()方法来注册本地服务,让其可发现。

private void startRegistration () { // Create a string map containing information about your service.
Map record = new HashMap();
record.put("listenport", String.valueOf(SERVER_PORT));
record.put("buddyname", "John Doe" + (int) (Math.random() * 1000));
record.put("available", "visible");

// Serviceinformation. Pass it an instance name, service type
//_protocol._transportlayer , and the map containing
//information other devices will want once they connect to this one.
WifiP2pDnsSdServiceInfo serviceInfo =
WifiP2pDnsSdServiceInfo.newInstance("_test", "_presence._tcp", record);

// Add thelocal service, sending the service info, network channel,
// andlistener that will be used to indicate success or failure of
// therequest.
mManager.addLocalService(channel, serviceInfo, new ActionListener() {
@Override
public void onSuccess() {
// Command successful! Code isn't necessarily needed here,
// Unless you want to update the UI or add logging statements.
}

@Override
public void onFailure(int arg0) {
// Command failed. Check for P2P_UNSUPPORTED, ERROR, or BUSY
}
});
}
发现附近的服务

Android使用回调方法来通知你的应用程序可用的服务,因此首先要做的就是要建立回调方法。创建一个 WifiP2pManager.DnsSdTxtRecordListener 对象来监听传入的记录。这个记录可以是其他设备的任意广播。当一个记录进入时,你可以把设备地址和其他你想要的其他相关信息复制到当前方法外部的数据结构中,以便后续可以访问它。下面的例子假设记录中包含一个“buddyname”字段,它带有用户的标识。

final HashMap < String , String > buddies = new HashMap < String , String >(); ...
private void discoverService() {
DnsSdTxtRecordListener txtListener = new DnsSdTxtRecordListener() {
@Override
/* Callbackincludes:
* fullDomain: full domainname: e.g "printer._ipp._tcp.local."
* record: TXT record dta as amap of key/value pairs.
* device: The device runningthe advertised service.
*/

public voidonDnsSdTxtRecordAvailable(
String fullDomain, Map record, WifiP2pDevice device) {
Log.d(TAG, "DnsSdTxtRecord available -" + record.toString());
buddies.put(device.deviceAddress, record.get("buddyname"));
}
};
...
}
实现一个 WifiP2pManager.DnsSdServiceResponseListener 接口,来获取服务信息。这个接口会接收实际的描述和连接信息。上面的代码中使用了 Map 对象把设备地址和用户标识组成一对。服务响应监听器使用这个接口把DNS记录和对应的服务信息连接到一起。实现上述两个监听器后,使用 setDnsSdResponseListener() 方法把它们添加给 WifiP2pManager 对象。

private void discoverService () { ...
DnsSdServiceResponseListener servListener = new DnsSdServiceResponseListener() {
@Override
public voidonDnsSdServiceAvailable(String instanceName, String registrationType,
WifiP2pDevice resourceType) {

// Update the device name with the human-friendly version from
// the DnsTxtRecord, assuming one arrived.
resourceType.deviceName = buddies
.containsKey(resourceType.deviceAddress) ? buddies
.get(resourceType.deviceAddress) : resourceType.deviceName;

// Add to the custom adapter defined specifically for showing
// wifi devices.
WiFiDirectServicesList fragment = (WiFiDirectServicesList)getFragmentManager()
.findFragmentById(R.id.frag_peerlist);
WiFiDevicesAdapter adapter = ((WiFiDevicesAdapter)fragment
.getListAdapter());

adapter.add(resourceType);
adapter.notifyDataSetChanged();
Log.d(TAG, "onBonjourServiceAvailable " + instanceName);
}
};

mManager.setDnsSdResponseListeners(channel, servListener, txtListener);
...
}

现在创建一个服务请求并调用 addServiceRequest() 方法,这个方法也需要一个监听器来包括成功或失败。

serviceRequest = WifiP2pDnsSdServiceRequest . newInstance (); mManager .addServiceRequest(channel,
serviceRequest,
new ActionListener() {
@Override
public void onSuccess() {
// Success!
}

@Override
public void onFailure(int code) {
// Command failed. Check forP2P_UNSUPPORTED, ERROR, or BUSY
}
});

最后,调用的 discoverServices() 方法。

mManager . discoverServices ( channel , new ActionListener () { @Override
public void onSuccess() {
// Success!
}

@Override
public void onFailure(int code) {
// Command failed. Check for P2P_UNSUPPORTED, ERROR, or BUSY
if (code == WifiP2pManager.P2P_UNSUPPORTED) {
Log.d(TAG, "P2P isn'tsupported on this device.");
else if(...)
...
}
});

如果一切顺利,恭喜你大功告成。如果遇到问题,记住前面异步调用的参数 WifiP2pManager.ActionListener 参数,它提供了指示成功或失败的回调方法。把调试断点设置在 onFailure() 方法中来诊断问题。这个方法提供了错误代码,以下是可能发生的错误:

P2P_UNSUPPORTED

运行 app 的设备上不支持 Wi-Fi P2P

BUSY

系统忙于处理请求

ERROR

由于内部错误导致操作失败

㈧ 基于Android的音乐播放器如何通过p2p方式实现播放和下载功能

有本书是《Android从入门到精通》了里面有个在线音乐播放器的例子,你可以参考一下

热点内容
安卓手机aac是什么 发布:2024-05-09 04:56:21 浏览:394
数据库的中文乱码 发布:2024-05-09 04:41:00 浏览:750
永劫无间服务器为什么那么烂 发布:2024-05-09 04:34:38 浏览:810
用哪个软件配置华为企业路由器 发布:2024-05-09 04:23:58 浏览:521
简易脚本 发布:2024-05-09 04:17:30 浏览:802
返校vlog脚本 发布:2024-05-09 04:15:53 浏览:619
vps云服务器免费租用 发布:2024-05-09 04:10:42 浏览:209
空调压缩机排量 发布:2024-05-09 04:08:42 浏览:540
android使用静态库 发布:2024-05-09 04:05:40 浏览:214
原生安卓开机动画在哪里 发布:2024-05-09 03:52:19 浏览:395