Я использую класс WifiP2pManager инициировать открытие пэров, как указано здесь: http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.htmlWifiP2pManager discoverPeers ActionListener возвращает Busy
Часть кода идет следующим образом:
//Activity Class
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
mChannel = mManager.initialize(this, getMainLooper(), null);
//Separate class here
mReceiver = new WiFiDirectBroadcastReceiver(mManager, mChannel, this);
//register the events to filter on to perform the broadcast receiver
mIntentFilter = new IntentFilter();
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
mManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
myTextView.setText("Success discovery");
}
@Override
public void onFailure(int reasonCode) {
myTextView.setText("Discovery errorcode:" + String.valueOf(reasonCode));
}
});
}
Бывает, что я получаю onSuccess
вызов в моем телефоне (на основе JellyBean), но планшет Lenovo A2107A, используемый для тестирования под управлением Android 4.1.2. Сэндвич IceCream просто получает onFailure
, где reasonCode равен 2 (занят): http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.ActionListener.html
Я заметил, что в настройках Wifi телефона отображается список параметров открытия WifiDirect, но в планшете нет возможности сделать это, хотя OS версии 4.x якобы поддерживает его, по крайней мере программно (я протестировал ShareIt Приложение и планшет могут передавать файлы через WiFi).
Аналогичный вопрос был задан здесь: Why do I always get BUSY when using WifiP2pManager? но без принятого ответа.
Есть ли что-нибудь, что я могу сделать, чтобы избежать всегда занятого состояния при использовании этого метода API на планшете ?. Благодаря!
Этот разрешенный шахта – Vishnu