2015-02-08 41 views
0

我要通过wifip2pmanager在android中启动一个项目。 它似乎成功创建了频道(“初始化”)。 但对于下一步我的代码不起作用(“discoverPeers或creategroup”)。 是在下面的代码中的任何问题?简单的Android发现者wifip2pmanager代码

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

谷歌文档指出“注册与初始化的应用程序处理(上下文,活套,WifiP2pManager.ChannelListener)要求的权限和ACCESS_WIFI_STATE到CHANGE_WIFI_STATE执行任何进一步的对等网络的操作。”所以你应该将这些权限添加到manifest.xml。代码中的下一步应该是处理广播接收器接收到的各种WIFI_P2P_STATE_XXX操作,您将提供并注册(通常位于onResume()内)