2015-02-08 10 views
0

Я собираюсь запустить проект в android через wifip2pmanager. Кажется, что канал успешно создан («инициализирован»). , но для следующего шага мой код не работает («DiscoverPeers или creategroup»). - любая проблема в нижнем коде?findpeers in simple android wifip2pmanager code

public class MainActivity extends Activity { 
     WifiP2pManager wifiMgr; 
     Channel channel; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     wifiMgr = (WifiP2pManager)getSystemService(Context.WIFI_P2P_SERVICE); 
     channel = wifiMgr.initialize(this,getMainLooper(),null); 
     wifiMgr.discoverPeers(channel, new ActionListener(){ 

      @Override 
      public void onFailure(int arg0) { 
       // TODO Auto-generated method stub 
       Toast.makeText(getApplicationContext(), "discover fail."+arg0, 
          Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onSuccess() { 
       // TODO Auto-generated method stub 
       Toast.makeText(getApplicationContext(), "discover succ.", 
          Toast.LENGTH_SHORT).show(); 
      } 

     }); 
    } 


} 

ответ

1

документации Google утверждает, что "Регистрация обработчика приложений с Initialize (Context, Looper, WifiP2pManager.ChannelListener) требует разрешений ACCESS_WIFI_STATE и CHANGE_WIFI_STATE для выполнения каких-либо дополнительных операций равный-равному". Поэтому вы должны добавить эти разрешения в manifest.xml. Следующий шаг в вашем коде должен обрабатывать различные действия WIFI_P2P_STATE_XXX, полученные широковещательным приемником, который вы будете снабжать и регистрировать (обычно внутри onResume())

 Смежные вопросы

  • Нет связанных вопросов^_^