我将通过wifip2pmanager在android中启动一个项目。 它似乎成功创建了通道(“初始化”)。 但是对于下一步,我的代码不起作用(“discoverPeers或creategroup”)。 下面的代码有什么问题吗?
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();
}
});
}
}
答案 0 :(得分:1)
Google文档声明“使用initialize注册应用程序处理程序(Context,Looper,WifiP2pManager.ChannelListener)需要权限ACCESS_WIFI_STATE和CHANGE_WIFI_STATE才能执行任何进一步的对等操作。”因此,您应该将这些权限添加到manifest.xml。您的代码中的下一步应该是处理您将提供和注册的广播接收器接收的各种WIFI_P2P_STATE_XXX操作(通常在onResume()内部