當前位置:首頁 » 安卓系統 » 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從入門到精通》了裡面有個在線音樂播放器的例子,你可以參考一下

熱點內容
建行手機app忘記密碼如何修改 發布:2024-04-27 08:58:59 瀏覽:392
蟻群演算法的數學模型 發布:2024-04-27 08:58:39 瀏覽:993
androidactivity生命 發布:2024-04-27 07:33:48 瀏覽:84
win2008伺服器搭建網站 發布:2024-04-27 07:26:51 瀏覽:640
java的vector 發布:2024-04-27 07:05:00 瀏覽:204
舊電腦共享伺服器 發布:2024-04-27 06:32:21 瀏覽:339
java程序練習 發布:2024-04-27 06:24:00 瀏覽:438
sql30 發布:2024-04-27 06:22:10 瀏覽:55
怎樣防止sql注入 發布:2024-04-27 06:11:25 瀏覽:236
安卓為什麼不能登蘋果系統的游戲 發布:2024-04-27 06:11:23 瀏覽:601