XG
XG
  • 发布:2015-01-06 08:57
  • 更新:2017-12-20 11:04
  • 阅读:11428

一些android公共方法native.js实现

分类:Native.js
/*得到手机MAC地址*/  
function getMac() {  
    var mac = "xxx-xxx-xxx-xxx";  
    if (plus.os.name == "Android") {  
        //WifiManager  
        var Context = plus.android.importClass("android.content.Context");  
        var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");  
        var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
        var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");  
        var wifiInfo = wifiManager.getConnectionInfo();  
        mac = wifiInfo.getMacAddress();  
    }  
    return mac;  
}
/*获取手机内存信息*/  
function getMemorySize() {  
    var memoryInfo = '';  
    if (plus.os.name == "Android") {  
        var Context = plus.android.importClass("android.content.Context");  
        var MemoryInfo = plus.android.importClass("android.app.ActivityManager.MemoryInfo");  
        var memortInfo = plus.android.importClass("android.app.ActivityManager");  
        var activityService = plus.android.runtimeMainActivity().getSystemService(Context.ACTIVITY_SERVICE);  
        activityService.getMemoryInfo(MemoryInfo);  
        memoryInfo = memortInfo.availMem;  
    }  
    return memoryInfo;  
}
/*获取手机内部总的存储空间*/  
function getTotalInternalMemorySize() {  
    var internalMemSize = 0;  
    if (plus.os.name == "Android") {  
        var environment = plus.android.importClass("android.os.Environment");  
        var statFs = plus.android.importClass("android.os.StatFs");  
        var files = plus.android.importClass("java.io.File");  

        var Files = environment.getDataDirectory();  
        var StatFs = new statFs(Files.getPath());  
        var blockSize = parseFloat(StatFs.getBlockSize());  
        var blockCount = parseFloat(StatFs.getBlockCount());  
        internalMemSize = blockSize * blockCount;  
    }  
    return internalMemSize;  
}
/*获取总内存*/  
function getTotalRamSize() {  
    var memInfo = '/proc/meminfo';  
    var temp = '',  
        ramSize = '',  
        arrays, initMemory;  
    var fileReader = plus.android.importClass("java.io.FileReader");  
    var bufferedReader = plus.android.importClass("java.io.BufferedReader");  
    var FileReader = new fileReader(memInfo);  
    var BufferedReader = new bufferedReader(FileReader, 8192);  
    while ((temp = BufferedReader.readLine()) != null) {  
        if (-1 != temp.indexOf('MemTotal:')) {  
            var value = temp.replace(/[^0-9]/ig, "");  
            ramSize = Math.floor(parseInt(value) / (1024));  
        }  
    }  

    return ramSize;  
}
/*获取手机CPU信息*/  
function getCpuInfo() {  
    var cpuInfo = '/proc/cpuinfo';  
    var temp = '',  
        cpuHardware;  
    var fileReader = plus.android.importClass("java.io.FileReader");  
    var bufferedReader = plus.android.importClass("java.io.BufferedReader");  
    var FileReader = new fileReader(cpuInfo);  
    var BufferedReader = new bufferedReader(FileReader, 8192);  
    while ((temp = BufferedReader.readLine()) != null) {  
        if (-1 != temp.indexOf('Hardware')) {  
            cpuHardware = temp.substr(parseInt(temp.indexOf(":")) + 1);  
        }  
    }  
    return cpuHardware;  
}  
/*获取CPU核数*/  
function getCpuCount() {  
    var Runtime = plus.android.importClass("java.lang.Runtime");  
    var cpuCount = Runtime.getRuntime().availableProcessors();  
    return cpuCount;  
}
2015-01-06 08:57 1 条评论 分享
已邀请:

最佳回复

DCloud_App_Array

DCloud_App_Array

感谢分享,真机测试可运行。
“获取手机内存信息”方法代码有点问题,正确代码如下:

/*获取手机内存信息*/  
function getMemorySize() {  
    var memoryInfo = '';  
    if (plus.os.name == "Android") {  
        var Context = plus.android.importClass("android.content.Context");  
        var ActivityManager = plus.android.importClass("android.app.ActivityManager");  
    var mi = new ActivityManager.MemoryInfo();  
        var activityService = plus.android.runtimeMainActivity().getSystemService(Context.ACTIVITY_SERVICE);  
        activityService.getMemoryInfo(mi);  
        memoryInfo = mi.plusGetAttribute("availMem");  
    }  
    return memoryInfo;  
}

旧版本HBuilder runtime获取属性值方法plusGetAttribute返回的值不正确,需要更新到最新版本

  • XG (作者)

    嗯嗯 谢谢

    2015-01-12 12:44

  • beckzl

    返回为 null 啊?怎么玩?

    2015-11-24 15:46

DCloud_heavensoft

DCloud_heavensoft

大赞啊!
另外能不能修改下文章,把排版规整一下,用markdown的code高亮来展示代码。

  • XG (作者)

    thx ,已修改。

    2015-01-07 09:07

  • DCloud_heavensoft

    mac写出map了。另外那个示例之前已经有人提供了。你提供了4个示例,一共加分800分!欢迎继续努力,再接再厉!

    2015-01-07 09:28

  • XG (作者)

    嗯嗯 好的 谢谢。已经改了为mac

    2015-01-11 14:32

Swizbert

Swizbert

关注收藏了

mathr

mathr

收藏

houyong

houyong

能不能发个整合芒果sdk的文档,菜鸟急需啊

  • DCloud_App_Array

    http://ask.dcloud.net.cn/docs#http://ask.dcloud.net.cn/article/104

    2015-01-10 14:25

DCloud_heavensoft

DCloud_heavensoft

还望继续补充清理内存等示例代码。

blk

blk

还望继续补充清理内存等示例代码。

小苏

小苏

mark

游帝2015

游帝2015

能不能通过native.js方式打开位置信息

my87@163.com

my87@163.com

能不能查看当前app内存占用及剩余内存

a999_999@qq.com

a999_999@qq.com

deviceList = usbManager.getDeviceList(); 有试过访问usb设备吗 谢谢 这个返回值很奇怪

native新手

native新手

android.app.ActivityManager.MemoryInfo 这个不行啊,加载不了class
Uncaught Attempt to invoke virtual method 'java.lang.String java.lang.Class.getName()' on a null object reference;at importClass android.app.ActivityManager.MemoryInfo at index.html:1

要回复问题请先登录注册