首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WifiP2pManager discoverPeers ActionListener返回繁忙

WifiP2pManager discoverPeers ActionListener返回繁忙
EN

Stack Overflow用户
提问于 2014-08-28 15:29:17
回答 2查看 4.1K关注 0票数 2

我使用WifiP2pManager类来启动对对等点的发现,如下所示:http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html

守则的部分内容如下:

代码语言:javascript
运行
复制
//Activity Class

@Override
protected void onCreate(Bundle savedInstanceState) {

    ...
    mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
    mChannel = mManager.initialize(this, getMainLooper(), null);

    //Separate class here 
    mReceiver = new WiFiDirectBroadcastReceiver(mManager, mChannel, this);          

    //register the events to filter on to perform the broadcast receiver
    mIntentFilter = new IntentFilter();

    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
    mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION); 

    mManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() {
        @Override
        public void onSuccess() {                   
           myTextView.setText("Success discovery");
        }

        @Override
        public void onFailure(int reasonCode) {
            myTextView.setText("Discovery errorcode:" + String.valueOf(reasonCode));
        }
    });

}

我在手机中接到onSuccess电话(基于JellyBean),但用于测试运行Android4.1.2 IceCream三明治的联想A2107A平板电脑只需要onFailure,reasonCode等于2(繁忙):http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.ActionListener.html

我注意到在手机的Wifi设置中显示了WifiDirect发现列表选项,但是在平板电脑中没有这样做的选项,尽管操作系统4.x版本应该至少以编程的方式支持它(我测试了ShareIt应用程序,平板电脑可以通过WiFi传输文件)。

这里也提出了一个类似的问题:Why do I always get BUSY when using WifiP2pManager?,但没有被接受的答案。

在平板上使用此API方法时,是否可以避免总是繁忙的状态?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-29 16:43:49

显然,联想A2107A平板电脑在用discoveryPeers方法调用WifiP2pManager实例后返回“忙”状态,不支持WiFi Direct/WiFi P2P,实际上无法在其上查找P2P对等点,因此返回onFailure回调中的statusCode 2繁忙状态,甚至运行理论上确实支持WifiDirect的Android 4.1.2,这有点奇怪。

为了更好地理解这项技术的内部工作,有几个有用的项目如下:

https://github.com/ahmontero/wifi-direct-demo

https://github.com/mayfourth/WiFi-Direct-File-Transfer

票数 1
EN

Stack Overflow用户

发布于 2016-11-18 09:11:55

请确保在调用discoveryPeers之前启用了Wifi。当Wifi被禁用时,我很忙;当Wifi被启用时,我获得了成功。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25552621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档