目前可用的 workaround 有这些:
1,通过 appops 强行给它们套枷锁(因为这些应用几乎只检查运行时权限不会查 appops )
@
yohanechan appops 在几乎所有场合下都管用,但是有的应用确实丧心病狂到连这个也查。而且它的做法还真的就是你想的那个返回空数据 /null。
比如你在 Android 8.1 或以上版本,用 appops 或运行时权限关掉应用的位置权限以后,这个应用不仅拿不到附近的热点信息,就连取回来的当前已经连接着的热点对应的 WifiInfo 里也取不出有意义的 SSID 与 bssid。
为何是这样:
appops 最早的作用是处理那些在 Android 还没有没有运行时权限机制时开发的应用,以及那些不用 /不能用运行时权限机制控制的特性,如后台限制(这里特指 run_in_background 与 run_any_in_background )。
2,避免使用几乎所有的国产 Android 应用,对的还是用回 iOS 吧,至少那边:
a,没有强制要权限的
b,用户追踪相对也困难一些