这是否意味着Build.SERIAL总是返回“未知”?如果是这样,它似乎与“硬件序列号,如果可用”相冲突。 有人可以帮忙澄清一下吗?
答案 0 :(得分:1)
部分正确。如果您在Android 9以下运行(或定位到Android 9以下版本),则该方法将返回设备上的原始序列号。
在Android 9及更高版本上,实际上您会得到字符串// mock orders.insert
const orders = {
insert: async() => {
return new Promise((resolve) => {
// wait a second then resolve
setTimeout(resolve, 1000);
});
}
}
// mock db.collection
const db = {
collection: async() => {
return new Promise((resolve) => {
// wait a second then resolve with mock data
setTimeout(() => resolve(['foo', 'bar', 'baz']), 1000);
});
}
}
function insert(order, orders, db) {
return orders.insert(order)
.then(() => db.collection('orders'));
}
// same as above, but with async/await
async function insertAsync(order, orders, db) {
await orders.insert(order);
return await db.collection('orders');
}
function go() {
// using then
insert(null, orders, db).then(console.log);
// using async/await;
insertAsync(null, orders, db).then(console.log);
}
go();
。在这种情况下,文档建议使用getSerial() method,该功能基本相同,但是需要额外的权限。
Google已here对此进行了详细说明,此更改的主要原因是许多图书馆使用这些数字进行设备指纹识别。现在建议进行指纹识别的方法是使用广告ID或实例ID,您可以阅读有关唯一标识符here用法的更多信息。