Android WifiP2pManager createGroup 总是失败并显示 BUSY 状态
Android WifiP2pManager createGroup always fail with BUSY state
我用下面的代码创建了一个WifiP2p组
manager.requestGroupInfo(channel, new WifiP2pManager.GroupInfoListener() {
public void onGroupInfoAvailable(WifiP2pGroup group){
if (group != null) {
manager.removeGroup(channel, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
manager.createGroup(channel, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
}
@Override
public void onFailure(int reason) {
Debug.d("" + reason);
}
});
}
@Override
public void onFailure(int reason) {
Debug.d("" + reason);
}
});
} else {
manager.createGroup(channel, new WifiP2pManager.ActionListener(){
@Override
public void onSuccess() {
}
@Override
public void onFailure(int reason) {
Debug.d("" + reason);
}
});
}
}
});
它总是失败,原因代码为 BUSY。我运行它在debug模式下,发现返回的WifiP2pGroup对象一直是null。然而它因 BUSY 原因而失败。我在应用程序 class 中创建并保留 WifiP2pManager 和 Channel 对象,并在整个应用程序中将它们作为单例使用。这可能是问题所在吗?我在网上找不到答案。
终于找到问题的根源了。 我的 WIFI 已关闭。我使用 WifiManager 打开 WIFI,现在它正在按预期创建组。
我用下面的代码创建了一个WifiP2p组
manager.requestGroupInfo(channel, new WifiP2pManager.GroupInfoListener() {
public void onGroupInfoAvailable(WifiP2pGroup group){
if (group != null) {
manager.removeGroup(channel, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
manager.createGroup(channel, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
}
@Override
public void onFailure(int reason) {
Debug.d("" + reason);
}
});
}
@Override
public void onFailure(int reason) {
Debug.d("" + reason);
}
});
} else {
manager.createGroup(channel, new WifiP2pManager.ActionListener(){
@Override
public void onSuccess() {
}
@Override
public void onFailure(int reason) {
Debug.d("" + reason);
}
});
}
}
});
它总是失败,原因代码为 BUSY。我运行它在debug模式下,发现返回的WifiP2pGroup对象一直是null。然而它因 BUSY 原因而失败。我在应用程序 class 中创建并保留 WifiP2pManager 和 Channel 对象,并在整个应用程序中将它们作为单例使用。这可能是问题所在吗?我在网上找不到答案。
终于找到问题的根源了。 我的 WIFI 已关闭。我使用 WifiManager 打开 WIFI,现在它正在按预期创建组。