2014-01-19 5 views
4

Я успешно настроил одноранговую группу Wifi-Direct для Android, используя метод createGroup() WifiP2pManager. Мое устройство Android (4.2.2) настроено как владелец группы. Теперь мне нужно установить SSID и кодовую фразу для adhoc-связи с унаследованным одноранговым устройством wifi, с которым я бы хотел подключиться.Android 4.2.2 Wifi-Direct adhoc network - доступ к скрытым андроидным методам для установки SSID и кодовой фразы?

Android, похоже, настроил SSID по умолчанию и кодовую фразу, и я могу прочитать эти значения с помощью методов WifiP2pGroup «getNetworkname()» и «getPassphrase()». Я мог бы использовать эти значения, но я хочу вместо этого устанавливать значения динамически в моем коде, чтобы соответствовать значениям устаревшего устройства Wi-Fi, к которому я хотел бы подключиться.

Если вы смотрите через андроид код для WifiP2pGroup, перечисленных по адресу:

http://android.googlesource.com/platform/frameworks/base/+/cd92588/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java

вы можете увидеть, что публичные методы «setNetworkName()» и «setPassphrase()», действительно существуют. Но если я пытаюсь обратиться к этим методам в коде Java на моем Android устройства, я получаю сообщение об ошибке:

«Метод setNetworkName (String) не определено для типа WifiP2pGroup» и

«The метод setPassphrase (String) не определен для типа WifiP2pGroup ".

Мой вопрос: как я могу получить доступ к этим скрытым методам, которые существуют в ОС Android 4.2.2, как общедоступные методы WifiP2pGroup?

Есть ли другой способ установить SSID и кодовую фразу отдельно от использования этих методов?

Кроме того, почему они решили скрыть эти методы, и знаете ли вы, будут ли они доступны в будущей версии Android? Если да, то какой выпуск?

Благодарим за любую помощь, которую вы можете предоставить.

+0

Пробовал методы отражения ?? – nmxprime

+0

Многократно я получаю кодовую фразу, которая будет нулевой. У вас возникли подобные проблемы? – nmxprime

ответ

3

Вы можете использовать отражение java.

Предположим, что группа WifiP2pGroup - ваш текущий объект.

Метод setPassPhraseMethod = group.getClass(). GetMethod ("setPassphrase", новый класс [{String.class}); и теперь вы вызываете метод:

setPassPhraseMethod.invoke (группа, "yourNewPassPrhase");