在QML中获取唯一的设备ID

汤米·布鲁恩(Tommy Brunn)

我需要获取设备的唯一ID。我原本以为我会使用设备的imei,但似乎没有返回任何信息:

import QtSystemInfo 5.0

DeviceInfo {
    id: device
}

Component.onCompleted {
    console.log(device.imei(0)) // Returns nothing
}

那可能是也可能不是错误:https : //bugs.launchpad.net/ubuntu/+source/qtsystems-opensource-src/+bug/1197542但由于一年来没有任何更新,我希望我可以使用其他一些信息。

那么,有谁知道我如何获得该设备的唯一ID?它必须是持久的,但是除了作为标识符之外,它可能完全没有意义。

汤米·布鲁恩(Tommy Brunn)

正如dobey所说,无法在受限应用程序中获取IMEI,因此我放弃了尝试根据设备本身获取ID的方法。相反,我只是生成一个UUID并将其存储在U1DB中。

// uuid.js
.pragma library

function generateUUID(){
    var d = new Date().getTime();
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c === 'x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
};

// Elsewhere
U1db.Database {
    id: db
    path: "settings"
}

U1db.Document {
    id: user
    database: db
    docId: "user"
    create: true
    defaults: {
        "userId": ""
    }
}

// Somewhere I need the userId
Item {
    id: thing

    Component.onCompleted: {
        userId: user.contents.userId
        if (!userId) {
             userId = Uuid.generateUUID()
             var userContents = user.contents
             userContents.userId = userId
             user.contents = userContents
        }
        return userId
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章