如何使用Nativescript获取sim网络的信号强度?

问题描述 投票:3回答:1
import * as application from 'application';
const TnsOneSignal = require('nativescript-onesignal').TnsOneSignal

if (application.android) {
        application.on(application.launchEvent, function(args: application.ApplicationEventData) {
            try {
                console.log('TnsOneSignal', TnsOneSignal)
                TnsOneSignal.startInit(application.android.context).init()
            } catch (error) {
                console.log('error', error)
            }
        })
    }

我尝试使用上面的代码和插件,但它不起作用..

任何人都可以帮助我的代码或提供更好的解决方案!

nativescript
1个回答
0
投票

要获得当前手机的信号强度,您可以使用Android和iOS上的原生API,并根据NativeScript's marshaling rules将代码转换为JavaScript。

例如,让我们拿这个native solution。以下是NativeScript中的样子

let telephonyManager = application.android.context.getSystemService(android.content.Context.TELEPHONY_SERVICE);
let cellinfogsm = telephonyManager.getAllCellInfo().get(0);
let cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength();
cellSignalStrengthGsm.getDbm();

当然,在Android中,为了能够获取此信息,您需要明确的ACCESS_COARSE_LOCATION权限,以便您可以使用nativescript-permissions plugin来授予它们。

Here you can find a test project展示了上述技术。基于相同的原理,您可以找到一个iOS示例,并使用从Objective-C到JS的编组将代码转换为JS。

© www.soinside.com 2019 - 2024. All rights reserved.