android - 如何在 Nativescript 中获取 mac 地址和 ip?
问题描述
我想从我的移动 Android 获取 IP 地址。
var context = application.android.context;
var wifiMgr = context.getSystemService("wifi");
var wifiInfo = wifiMgr.getConnectionInfo();
var ip = wifiInfo.getIpAddress();
console.log('ip', ip)
结果是:JS: ip -2029999936
但实际上这不是我的IP。
你能问我任何想法吗?
更新:
我遵循这个。我有这个代码:
步骤1。在我的组件中添加以下代码:
import app = require("application");
app.android.context;
constructor() {
var context = android.content.Context;
var wifiManager = app.android.context.getSystemService(context.WIFI_SERVICE);
var wInfo = wifiManager.getConnectionInfo();
var mac = wInfo.getMacAddress();
}
第2步。在 AndroidManifest.xml 添加
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
错误:[ts] 找不到名称“android”。[2304] 在这一行: var context = android.content.Context; 错误 TS1202:以 ECMAScript 模块为目标时无法使用导入分配。考虑使用 'import * as ns from "mod"'、'import {a} from "mod"'、'import d from "mod"' 或其他模块格式。
解决方案
您应该具有捕获 IP 地址的ACCESS_WIFI_STATE
权限AndroidManifest.xml
。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
那么你所要做的就是,
import * as application from 'tns-core-modules/application';
declare var android;
const wifiManager = application.android.context.getSystemService(android.content.Context.WIFI_SERVICE);
const connectionInfo = wifiManager.getConnectionInfo();
const ip = android.text.format.Formatter.formatIpAddress(connectionInfo.getIpAddress());
declare var android;
是为了避免访问原生api时出现TS错误。另一种方法是安装tns-platform-declarations
插件并将声明文件指向您的references.d.ts
.
为了给用户提供更好的数据保护,从这个版本开始,Android 移除了对使用 Wi-Fi 和蓝牙 API 的应用程序的设备本地硬件标识符的编程访问。WifiInfo.getMacAddress() 和 BluetoothAdapter.getAddress() 方法现在返回 02:00:00:00:00:00 的常量值。
所以它似乎没有得到官方的支持。
推荐阅读
- python - 如何解决EOFError:读取一行时的EOF?
- php - 我怎样才能把一些css放在一个select stmt中?
- sql - 如何在 MS SQL Server Mangement Studio 中访问“ID”
- magento - 如果有人在 Magento 2 中向卡片添加项目时选择了特定属性,则从库存中扣除
- azure-active-directory - B2B 邀请兑换页面的密码复杂性问题
- javascript - 我无法选择 fabric.js 对象
- arduino - Arduino和Nodemcu之间的串行通信
- c# - 如何在多个变量中获取多个文件的目录?
- java - 修改具有 jsonpath 的 Json
- vue.js - 如何在 Linux 上安装 zurb 基础