小编Pri*_*rat的帖子

使用 proguard 保留具有单个参数的方法

我有一种方法

public class XYZ {
    public void foo(boolean isAvailable) {

    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 Proguard 进行混淆,请让我知道如何使用它的布尔参数保留方法 foo。

android proguard

5
推荐指数
1
解决办法
224
查看次数

检查设备是否连接到 WiFi 接入点或移动热点?

要求:- 仅当设备仅连接到实际 WiFi 接入点而不是移动热点或蜂窝数据时才需要运行一些网络调用。

我们需要检查当前连接的网络是否是移动热点。目前,如果连接到 WiFi 或蜂窝网络,我正在使用以下代码。

    Network activeNetwork = connectivityManager.getActiveNetwork();

    NetworkCapabilities networkCapabilities = mConnectivityManager.getNetworkCapabilities(activeNetwork);

    boolean isWiFi = networkCapabilities.hasTransport(NetworkCapablities.TRANSPORT_WIFI);
Run Code Online (Sandbox Code Playgroud)

为了确定 wifi 连接是否是移动热点,我尝试了一种解决方法,使用以下方法。

connectivityManager.isActiveNetworkMetered()
Run Code Online (Sandbox Code Playgroud)

随着活动连接计量检查,更新的条件如下

boolean isWiFiNotAMobileHotspot = networkCapablities.hasTransport(NetworkCapablities.TRANSPORT_WIFI) && connectivityManager.isActiveNetworkMetered();
Run Code Online (Sandbox Code Playgroud)

由于 isActiveNetworkMetered() 仅有助于确定我们是否连接了按流量计费的连接(具有每日/每月数据限制的限制。)

因此,对于大多数移动热点,它给出了预期的结果,但如果移动热点有无限数据计划,则 isActiveNetworkMetered() 返回 false。

因此,不幸的是,此解决方案并不是查找设备是否连接到移动热点的准确方法。

请帮助我找到解决方案,检查设备是否连接到移动热点。

android

5
推荐指数
1
解决办法
2398
查看次数

标签 统计

android ×2

proguard ×1