The*_*man 6 android wifi-direct wifip2p
我正在编写一个Wifi Direct游戏,但是当一个用户拒绝加入连接的邀请时,WifiP2pDevice状态遇到了问题.
不应该将状态转移回电话A上显示的AVAILABLE状态?我刷新了可用设备列表,但状态保持不变.即使我重新启动应用程序,它仍会显示电话B的状态为受邀者?
这是否应该基于WifiDirect的API发生?还是我错过了什么?
编辑:更多信息
在BroadcastReciever,当意图是WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION,然后使用实现PeerListListener,这只是打印可用设备和这些设备的信息(包括状态)列表的片段经理要求同行.因此,当电话A使用manager.connect()发送邀请时,它会将状态更改为INVITED.但如果电话B拒绝,状态仍为INVITED.这些状态是在notifyDataSetChanged()上触发的.这不是关于代码的问题,而是wifi如何直接确定和更改设备的状态.但如果需要,我可以提供代码.
小智 2
如果状态为“已邀请”,您可以取消连接
if (fragment.getDevice().status == WifiP2pDevice.AVAILABLE
|| fragment.getDevice().status == WifiP2pDevice.INVITED) {
manager.cancelConnect(channel, new ActionListener() {
@Override
public void onSuccess() {
Toast.makeText(WiFiDirectActivity.this, "Aborting connection",
Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int reasonCode) {
Toast.makeText(WiFiDirectActivity.this,
"Connect abort request failed. Reason Code: " + reasonCode,
Toast.LENGTH_SHORT).show();
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2811 次 |
| 最近记录: |