2012-05-16 5 views
4

Android 기기의 WiFi 직접 인터페이스 (예 : 인터페이스 이름)의 기기 세부 정보를 어떻게 변경할 수 있는지 알고 싶습니다. 무선 통신을 위해 Bluetooth 또는 WiFi Direct 기술을 사용하는 응용 프로그램을 개발 중이며 특정 접두어로 명명 된 장치에만 연결하여 응용 프로그램을 실행중인 장치를 식별합니다 (인터페이스가있는 장치와 관련이 있습니다). 그것은 순진한 해결책입니다 ... :)). 블루투스는 BluetoothAdapter 클래스에서 제공하는 setName(String name)getName() 메서드를 사용하여 인터페이스 이름을 조작 할 수 있지만 해당 인터페이스는 WiFi Direct 용으로 존재하지 않습니다. 가능하지 않은 경우 인터페이스가있는 장치와 관련하여 내 앱을 실행하는 WiFi Direct 장치를 어떻게 구별 할 수 있습니까? 도움을 주시면 감사하겠습니다. 감사합니다.Android WiFi 직접 장치 세부 정보

+0

이 이미 대답 질문에 보일 것입니다 : [1 안드로이드에 와이파이 인터페이스 이름을 가져옵니다] ] [1] : http://stackoverflow.com/questions/5980826/get-wifi-interface-name-on-android – buzeeg

+0

당신의 응답을 주셔서 감사합니다! 그 질문에, 그들은 안드로이드에서 Wifi 인터페이스 이름을 얻기위한 해결책에 대해 말하고 있습니다. 반면에 나는 안드로이드에서 Wifi Direct 인터페이스 이름을 설정하는 솔루션을 찾고 있습니다! – user1399641

+0

다음과 같은 서비스 검색을 사용할 수 있습니다. http://developer.android.com/training/connect-devices-wirelessly/nsd.html – vjsailappan

답변

0

와이파이 직접 이름 장치 이름, 당신은 다음과 같은 방법으로 변경할 수 있습니다 : 아마도

public void changeWiFiDirectName(final String newName){ 
Method m = null; 
try { 
    m = mManager.getClass().getMethod("setDeviceName", new Class[]{mChannel.getClass(), String.class, WifiP2pManager.ActionListener.class}); 
} catch (NoSuchMethodException e) { 
    e.printStackTrace(); 
} 
try { 
    if (m != null) { 
     m.invoke(mManager, mChannel,newName, new WifiP2pManager.ActionListener() { 

      @Override 
      public void onSuccess() { 
       Log.d(TAG, "Name changed to "+newName); 
      } 
      @Override 
      public void onFailure(int reason) { 
       Log.d(TAG, "The name was not changed"); 
      } 
     }); 
    } 
} catch (IllegalAccessException e) { 
    e.printStackTrace(); 
} catch (InvocationTargetException e) { 
    e.printStackTrace(); 
}