【问题标题】:how to get signal strength of sim network using Nativescript?如何使用 Nativescript 获取 sim 网络的信号强度?
【发布时间】:2018-07-13 11:54:30
【问题描述】:
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-onesignal与SIM网络强度有什么关系?据我所知,该插件提供了推送通知功能。
  • 是的,你是对的,因为我是 nativescript 的新手,所以我不明白,但现在我知道了,所以请帮助我获得 sim 网络强度!

标签: nativescript


【解决方案1】:

要获取当前手机的信号强度,您可以使用 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。

【讨论】:

  • 谢谢尼克。我还想问是否有任何插件需要此​​解决方案,如第一行应用程序给出错误:应用程序未知??
  • application其实就是应用模块github.com/NickIliev/NS-Issues-2018-II/blob/master/…
  • 请注意,上面的代码只能在真实设备上运行,不能在模拟器上运行(没有 SIM 和电话服务)
  • 非常感谢尼克的帮助。
猜你喜欢
  • 2012-07-08
  • 1970-01-01
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
  • 2012-08-10
  • 1970-01-01
相关资源
最近更新 更多