Форма Xamarin: Как проверить уровень сигнала на Android и iOS - PullRequest
0 голосов
/ 28 июня 2018

В настоящее время я хотел проверить уровень сигнала перед началом загрузки данных на сервер как на Android, так и на iOS, независимо от того, есть ли Wi-Fi или сотовая связь.

Я сталкивался с этим кодом на Android:

    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

 List<CellInfo> cellInfos = telephonyManager.getAllCellInfo();   //This will give info of all sims present inside your mobile 
 if(cellInfos!=null){
     for (int i = 0 ; i<cellInfos.size(); i++){
           if (cellInfos.get(i).isRegistered()){
                if(cellInfos.get(i) instanceof CellInfoWcdma){
                    CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) telephonyManager.getAllCellInfo().get(0);
                    CellSignalStrengthWcdma cellSignalStrengthWcdma = cellInfoWcdma.getCellSignalStrength();
                    strength = String.valueOf(cellSignalStrengthWcdma.getDbm());
                }else if(cellInfos.get(i) instanceof CellInfoGsm){
                    CellInfoGsm cellInfogsm = (CellInfoGsm) telephonyManager.getAllCellInfo().get(0);
                    CellSignalStrengthGsm cellSignalStrengthGsm = cellInfogsm.getCellSignalStrength();
                    strength = String.valueOf(cellSignalStrengthGsm.getDbm());
                }else if(cellInfos.get(i) instanceof CellInfoLte){
                    CellInfoLte cellInfoLte = (CellInfoLte) telephonyManager.getAllCellInfo().get(0);
                    CellSignalStrengthLte cellSignalStrengthLte = cellInfoLte.getCellSignalStrength();
                    strength = String.valueOf(cellSignalStrengthLte.getDbm());
                }
            }
        }
        return strength;
    }

Это проверка только для сотовой связи, а не для соединения Wi-Fi, как классифицировать на низкую, среднюю и высокопрочную

...