Bây giờ bạn có thể tạo một nhóm liên tục mới qua WifiP2pManager.createGroup(..)
. Nó sẽ tạo ra một nhóm mới và làm cho chủ sở hữu nhóm thiết bị gọi (A) và có thể làm những gì bạn mô tả. Vấn đề duy nhất là khi bạn tạo một nhóm và kết nối với một thiết bị khác, thiết bị kia (B) sẽ nhớ nhóm cụ thể đó. Nếu bạn cố gắng tạo một nhóm mới trong A (nói, mở ứng dụng lần thứ hai) và thử kết nối từ B, nó sẽ tự động gia nhập nhóm cũ và không xuất hiện như thể nó được kết nối trong nhóm mới trong A.
EDIT: Có một cách để xóa sạch tất cả các nhóm liên tục. Đó là một chức năng ẩn được gọi là deletePersistentGroups
. Điều này sẽ quét sạch tất cả mọi người mặc dù, nhưng nó có vẻ là cách đáng tin cậy duy nhất để giải quyết vấn đề của bạn. Gọi điện thoại này sau khi bạn gọi WifiP2pManager.initialize(..)
, để bạn có thể sử dụng kênh.
private void deletePersistentGroups(){
try {
Method[] methods = WifiP2pManager.class.getMethods();
for (int i = 0; i < methods.length; i++) {
if (methods[i].getName().equals("deletePersistentGroup")) {
// Delete any persistent group
for (int netid = 0; netid < 32; netid++) {
methods[i].invoke(wifiP2pManager, mChannel, netid, null);
}
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
Tôi không chắc chắn lý do tại sao netid
lên tới 31, tôi cho rằng đó là số lượng tối đa các kết nối được ghi nhớ cho phép. Mã được lấy từ here.
Nguồn
2014-10-07 17:58:49
Hiện tại. Có thể câu trả lời này đã lỗi thời. –
Hơn *** mỉa mai *** nó được sử dụng để không tồn tại, nhưng bây giờ mà nó là cố định, tôi không thể loại bỏ nó bởi vì nó là REALLY dai dẳng. – CrandellWS