首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在调用InvocationTargetException ()时避免WifiP2pManager.setWFDInfo?

如何在调用InvocationTargetException ()时避免WifiP2pManager.setWFDInfo?
EN

Stack Overflow用户
提问于 2022-05-10 09:27:59
回答 1查看 77关注 0票数 0

我正在尝试创建一个android Wi显示(Miracast)应用程序。

我使用以下代码注册接收器端口:

代码语言:javascript
复制
Class clsWifiP2pManager = Class.forName("android.net.wifi.p2p.WifiP2pManager");
Method methodSetWFDInfo = clsWifiP2pManager.getMethod("setWFDInfo",
                            WifiP2pManager.Channel.class, clsWifiP2pWfdInfo, WifiP2pManager.ActionListener.class);
methodSetWFDInfo.invoke(wifiP2pManager, channel, wifiP2pWfdInfo, listener);

但是当应用程序运行时,会抛出一些异常:

代码语言:javascript
复制
W/System.err: java.lang.reflect.InvocationTargetException
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
...
W/System.err: Caused by: java.lang.SecurityException: Wifi Display Permission denied for uid = 10055
W/System.err:     at android.os.Parcel.createException(Parcel.java:1953)
W/System.err:     at android.os.Parcel.readException(Parcel.java:1921)
W/System.err:     at android.os.Parcel.readException(Parcel.java:1871)
W/System.err:     at android.net.wifi.p2p.IWifiP2pManager$Stub$Proxy.checkConfigureWifiDisplayPermission(IWifiP2pManager.java:205)
W/System.err:     at android.net.wifi.p2p.WifiP2pManager.setWFDInfo(WifiP2pManager.java:1391)
W/System.err:   ... 21 more

我知道checkConfigureWifiDisplayPermission()setWFDInfo()中,它会检查我的应用程序是否具有系统应用程序的权限:android.permission.CONFIGURE_WIFI_DISPLAY,但是这个应用程序不是系统应用程序,所以我如何避免权限检查或避免例外情况:InvocationTargetException

顺便说一下,我已经在我的AndroidManifest.xml中添加了这个权限

代码语言:javascript
复制
    <uses-feature android:name="android.hardware.wifi" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
EN

回答 1

Stack Overflow用户

发布于 2022-05-10 09:40:33

您是否在清单中声明了这些权限:

代码语言:javascript
复制
<uses-feature android:name="android.hardware.wifi" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72183832

复制
相关文章

相似问题

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