【问题标题】:WifiP2pManager.discoverPeers fails in android 10WifiP2pManager.discoverPeers 在 android 10 中失败
【发布时间】:2020-08-10 12:58:23
【问题描述】:

以下代码示例返回错误代码:0,这是android内部错误的错误代码。是否有任何解决方法可以在 android 10 设备中发现对等点?

                wifip2pmanager.discoverPeers(wifip2pmanagerChannel, new WifiP2pManager.ActionListener() {
                @Override
                public void onSuccess() {
                    status.setText("Peer Discovery Started");
                }

                @Override
                public void onFailure(int reason) {

                    status.setText("Error code:" + reason);
                }
            });

【问题讨论】:

  • 您是否在清单中声明了ACCESS_FINE_LOCATION 权限?
  • 是的。 ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION 都被声明了。

标签: android android-10.0 wifip2p peer-discovery


【解决方案1】:

同样的事情发生在我身上……

ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION 是不够的。用户必须明确激活位置服务! (在我的情况下,打开位置解决了这个问题......)

这意味着:您可以在设置中手动激活位置,或者向用户发出可用性友好请求以激活位置服务(类似于权限请求窗口;请参阅谷歌地图)

参见this question 后者的示例代码。希望这会有所帮助!

编辑:如果您搜索不包含任何 Google 库的 anwser,请参阅this question 的 anwser。

【讨论】:

    【解决方案2】:

    除了列表中的声明,还需要动态申请这个权限。

    【讨论】:

    • 删除ACCESS_COARSE_LOCATION 成功了。感谢您的回答。
    • 我尝试了有和没有权限仍然出现错误
    • 您必须在设置中开启location。请看我的anwser
    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 2018-03-02
    • 2021-12-19
    • 1970-01-01
    • 2021-08-15
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多