精华内容
下载资源
问答
  • 文章目录[隐藏] 软件介绍软件截图版本特点 软件介绍AIDA64是最权威安卓设备硬件检测利器。它是其它硬件性能检测App难以与之相比的,无论是设备型号、系统版本信息,还是CPU、显示屏和GPU的详细信息,连CPU缓存、GPU ...
    文章目录[隐藏]

    软件介绍

    AIDA64是最权威安卓设备硬件检测利器。它是其它硬件性能检测App难以与之相比的,无论是设备型号、系统版本信息,还是CPU、显示屏和GPU的详细信息,连CPU缓存、GPU ALU、传感器工作状态、网络信息和电池信息、Java虚拟机配置乃至系统System目录各关键文件的详细内容,都能专业读取。

    软件截图

    手机硬件检测工具 AIDA64-行云博客


    版本特点

    解锁内购,移除应用广告;
    杜绝联网行为、兼容所有安卓设备;
    禁止应用收集分析数据与崩溃报告;
    禁用且删除不必要的权限及服务项;





    文件名称:手机硬件检测工具 AIDA64

    更新日期:2020-07-19

    文件大小:9.0M

    广

    点击下载


    行云博客 - 免责申明

    本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我(admin@xy586.top)联系处理。敬请谅解!

    喜欢 (0)
    [行云博客]
    分享 (0)
    展开全文
  • 中文:立波硬件检测 应用支持/官方网站:http://www.weibo.com/souapp email:souapp@163.com 应用官方下载链接: ... ...立波硬件检测 是一款应用玩家的必备工具,可以快速检测出手机硬件信息。特别推荐给APP开发和AP
    中文:立波硬件检测
    应用支持/官方网站:http://www.weibo.com/souapp
    email:souapp@163.com
    应用官方下载链接:
    http://www.souapp.com/site_media/SOUAPP_DeviceManager.apk


    应用描述:

    立波硬件检测 是一款应用玩家的必备工具,可以快速检测出手机硬件信息。特别推荐给APP开发和APP测试的高端人士,对于日常工作非常有帮助。
    提供以下功能:
    1.检测设备基本信息:手机串号,系统版本,手机号,运营商,ROOT权限检测,机器型号,CPU型号,CPU主频,内存信息,SD卡容量及使用情况,屏幕分辨率和屏幕尺寸.
    2.详细硬件检测:安卓系统,CPU处理器,照相机,设备信息,屏幕显示,键盘信息,地理位置,存储信息,无线设备,传感器等各项和总项的检测.

    3.提供信息检测结果的导出功能.



    展开全文
  • 手机检测和记步app

    2016-03-18 16:57:08
    基于ionic+cordova开发的一个demo,提供了手机硬件检测和记步功能,十分简单,可以当作入门项目来学习。
  • 51单片机DHT11温湿度检测手机蓝牙APP显示设计

    万次阅读 多人点赞 2018-08-18 21:50:42
    今天给大家介绍的是一个温湿度检测设计,基于51单片机、蓝牙模块、温湿度传感器、Android APP完成。首先先展示一下设计好的实物,接下来将从系统方案、硬件设计、软件设计这三个方面来阐述。 1.系统方案 先...

    某宝购买链接:

    https://item.taobao.com/item.htm?ft=t&id=628708720183

     

    今天给大家介绍的是一个温湿度检测设计,基于51单片机、蓝牙模块、温湿度传感器、Android APP完成。首先先展示一下设计好的实物,接下来将从系统方案、硬件设计、软件设计这三个方面来阐述。

    1.系统方案

    先来看一下整体的架构图:硬件部分由STC89C52单片机、DHT11温湿度传感器、BT08蓝牙串口模块和Android手机组成。传感器将采集到的温湿度数据传送给单片机,然后单片机通过蓝牙串口模块将数据发送到手机APP,从而将温湿度在APP显示出来。在APP上可以设置温湿度告警的阈值,超过阈值将显示“偏高”或者“偏低”的相关信息。

    2.硬件设计

    整个设计的原理图如下所示,由单片机最小系统、蓝牙串口模块、温湿度传感器组成。传感器的DATA管脚连接单片机的P2^0口,蓝牙串口模块的RXD、TXD分别连接单片机的TXD、RXD。

    蓝牙串口模块的功能是串口协议和蓝牙协议之间的相互转换,在单片机上自己编写一套蓝牙驱动代码是非常复杂的,借助这个模块我们在编写单片机代码时只需要编写串口收发的代码即可,该模块得到串口数据后会转成蓝牙数据。对于APP它接收到的是蓝牙数据,开发APP时只需要编写蓝牙相关的代码,Android封装了蓝牙相关的API,所以开发起来简单。蓝牙串口模块的引脚图如下图所示,在这个设计中用到了四个引脚,VCC、GND接5V电源和地,蓝牙模块的TXD接单片机的RXD,RXD接TXD。

    DHT11温湿度传感器负责采集环境中的温湿度数据,在单片机软件设计部分会详细的介绍该传感器的使用步骤。引脚说明:
    VDD 供电3.3~5.5V DC
    DATA 串行数据,单总线
    NC 空脚
    GND 接地,电源负极

     

    3.单片机软件设计

    单片机程序主要是两个点,一是读取DHT11传感器的温湿度数据,二是串口通信。DHT11的官方文档写的很规范,有关于读取数据的详细步骤,文档更新也比较及时,最新的更新日期是2017年3月31号,官网的下载地址:http://www.aosong.com/products-21.html

    DHT11采用单总线通信,单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。

    • 传送数据位定义

    DATA 管脚用于DHT11与单片机之间的通讯和同步,采用单总线数据格式,一次传送40 位数据,高位先出。
    数据格式:
    8bit 湿度整数数据+ 8bit 湿度小数数据+ 8bit 温度整数数据+ 8bit 温度小数数据+ 8bit 校验位。
    注:其中湿度小数部分为0。

    • 校验位数据定义

    8bit 湿度整数数据 +  8bit 湿度小数数据 +  8bit 温度整数数据 +  8bit 温度小数数据 = 8bit 校验位
    如果以上等式成立,则本次传感器采集的数据有效,否则无效。

    先看采集数据有效的示例,接收到的40 位数据为:
    0011 0101     0000 0000     0001 1000     0000 0100      0101 0001
    湿度高8 位     湿度低8 位     温度高8 位     温度低8 位    校验位
    计算: 0011 0101 + 0000 0000 + 0001 1000 + 0000 0100 = 0101 0001,接收数据正确。
    湿度:0011 0101(整数)=35H=53%RH 0000 0000(小数)=00H=0.0%RH =>53%RH + 0.0%RH = 53.0%RH
    温度:0001 1000(整数)=18H=24℃ 0000 0100(小数)=04H=0.4℃ =>24℃ + 0.4℃ = 24.4℃

    采集数据无效的示例,接收到的40 位数据为:
    0011 0101     0000 0000     0001 1000    0000 0100     0100 1001
    湿度高8 位    湿度低8 位     温度高8 位    温度低8 位    校验位
    计算: 0011 0101 + 0000 0000 + 0001 1000 + 0000 0100 不等于0100 1001,本次接收的数据不正确,放弃,重新接收数据。

    通过以上两个示例可以清楚DHT11数据格式以及数据如何去校验有效性。

    • 数据时序图

    用户主机(MCU)发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出40bit 的数据,并触发一次信采集。信号发送如图所示。这里的主机是指单片机,从机是指DHT11传感器。

    下面这个图表罗列了时序图相关的参考时间,在读取数据的详细步骤中会用到这些数值。

    根据时序图和表中的参考时间,我们可以得出读取传感器数据的步骤。

    step1:单片机输出低电平保持20ms

    step2:单片机拉高电平保持13us等待DHT11传感器的低电平响应信号

    step3:判断DHT11是否给出低电平响应,如果有低电平响应则进入步骤4,否则等待下一轮的尝试。

    step4:通过while语句等待83us的低电平响应时间结束

    step5:通过while语句等待87us的高电平响应时间结束

    step6:计算温湿度数据

    step7:单片机输出高电平结束一次数据采集的读取

    step8:校验数据

    在时序图中可以看到,数据读取是每次一位进行的,数据0位和数据1位的低电平时间是相同的,即54us。数据0位的高电平时间是24us,而数据1为的高电平时间是71us,通过高电平时间的差异我们就可以判断出是数据0还是数据1。所以单独写了一个函数用来计算数据0位和1位,由于温湿度的整数和小数部分分别是由8位表示的,我们定义该函数得到8位数据之后给出返回值。步骤6对应的函数computeData() 用来完成上述工作。我们对步骤6进行详细的描述:

    step 6.1:等待54us低电平结束

    step 6.2:延时30us判断高电平是否结束,因为数据0位的电平最大时长是27us,如果超过27us之后高电平结束,则为数据0位,否则为数据1位。

    step 6.3:通过while语句等待高电平结束

    step 6.4:通过移位和或与的方式保存一个数据位

    step 6.5:循环6.1到6.4步骤8次,得到一个字节的数据

    //--------------------------------
    //-----湿度读取子程序 ------------
    //--------------------------------
    //----以下变量均为全局变量--------
    //----温度高8位== temperature_H------
    //----温度低8位== temperature_L------
    //----湿度高8位== humidity_H-----
    //----湿度低8位== humidity_L-----
    //----校验 8位 == checkdata-----
    //--------------------------------
    void readData()
    {
        U8  humidity_H_temp,humidity_L_temp,temperature_H_temp,temperature_L_temp,checkdata_temp;
        //step1:单片机输出低电平保持20ms
        P2_0=0;
        delayms(20);
        //step2:单片机拉高电平保持13us等待DHT11传感器的低电平响应信号
        P2_0=1;
        delay13us();
        //step3:判断DHT11是否给出低电平响应,如果有低电平响应则进入步骤4,否则等待下一轮的尝试。
        if(P2_0==0)
        {
            //step4:通过while语句等待83us的低电平响应时间结束
            while(P2_0==0);	
            //step5:通过while语句等待87us的高电平响应时间结束			
            while(P2_0==1);				
            //step6:计算温湿度数据
            humidity_H_temp = computeData();
            humidity_L_temp = computeData();
            temperature_H_temp = computeData();
            temperature_L_temp = computeData();
            checkdata_temp = computeData();
            //step7:单片机输出高电平结束一次数据采集的读取
            P2_0 = 1;		
            //step8:校验数据
            if(checkdata_temp = humidity_H_temp + humidity_L_temp + temperature_H_temp + temperature_L_temp)
            {
                humidity_H = humidity_H_temp;
                humidity_L = humidity_L_temp;
                temperature_H = temperature_H_temp;
                temperature_L = temperature_L_temp;
                checkdata = checkdata_temp;
            }
        }
    
    }
    
    /**
    *根据时序计算温湿度值
    */
    U8 computeData()
    {
        U8 i,U8comdata;
        for(i=0; i<8; i++)
        {
            //step 6.1:等待54us低电平结束
            while(P2_0==0);
            //step 6.2:延时30us判断高电平是否结束	
            Delay_10us();					
            Delay_10us();
            Delay_10us();
            U8temp=0;
            if(P2_0==1)						
            {											
                U8temp=1;
            }
            //step 6.3:通过while语句等待高电平结束
            while(P2_0==1);
            //step 6.4:通过移位和或与的方式保存一个数据位			
            U8comdata<<=1;
            U8comdata|=U8temp;
        }
        return U8comdata;
    }

    温湿度数据读取完毕,接下来就是通过串口发送出去,串口发送数据的代码相对简单了,我们在主函数中对串口通信进行初始化,然后在一个while语句中每隔2s读取数据然后发送。

    //----------------------------------------------
    //main()功能描述:  STC89C52RC  11.0592MHz   串口发送温湿度数据,波特率 9600
    //----------------------------------------------
    void main()
    {
        U8  i;
        TMOD = 0x20;          //定时器T1使用工作方式2
        TH1 = 253;        // 设置初值
        TL1 = 253;
        TR1 = 1;          // 开始计时
        SCON = 0x50;          //工作方式1,波特率9600bps,允许接收
        ES = 1;
        EA = 1;           // 打开所以中断
        TI = 0;
        RI = 0;
        Delay(1);         //延时100US(12M晶振)
        while(1)
        {
            //调用温湿度读取子程序
            readData();
            str[0]=humidity_H;
            str[1]=humidity_L;
            str[2]=temperature_H;
            str[3]=temperature_L;
            str[4]=checkdata;
            //发送到串口
            for(i=0; i<5; i++)
            {
                sendOneChar(str[i]);
            }
            //读取模块数据周期不易小于 2S
            delayms(2000);
        }
    
    }

    至此,单片机端的主要代码就讲解完了,可以看到核心代码是如何读取DHT11的数据。

    4.手机APP软件设计

    APP是用Android Studio(AS)开发的,不建议初学者学习Eclipse结合ADT(Android Eclipse Tools)插件的方式开发Android APP,这种方式已经过时并且以后会被淘汰,Google在2016年底已经停止了对ADT的更新,我之前所在的公司已经将Eclispe的代码全部迁移到AS平台了,推荐使用Google自家的AS集成开发环境。AS有很多优点,但是在使用时也有问题,AS借助gradle进行项目构建,至于为什么Google利用gradle进行Android app项目构建,读者可以自行上网搜索。gradle插件版本要和AS版本相对应,不同的开发者的gradle版本可能不同,所以当你拿到另外一个开发者的代码在自己的AS运行时时有可能会构建失败。这个现象对于国外开发者而言不是一个问题,AS可以自动去下载所需要的gradle插件版本,但是在国内,由于众所周知的原因,如果不会科学上网那么AS直接尝试下载gradle插件时会失败,会令很多初学者不知所措。在以后有时间我会单独写一篇blog来讲解如何去解决这个问题。最近听到Google要重返中国市场,如果能回归成功,对于国内的很多开发者和学术研究者而言是个好消息。

    言归正传,本设计APP的代码主要分成两个部分,一是蓝牙数据的接收,二是图表显示。

    4.1 APP蓝牙软件设计

    蓝牙通信的三个基本步骤:搜索、配对、连接。这之后就可以进行数据传输了。

    • 权限

    在蓝牙通信中需要获取Android系统的以下三个权限,如果不能给APP授予相关的权限会影响蓝牙的正常使用:
    BLUETOOTH:允许配对的设备进行连接
    BLUETOOTH_ADMIN:允许搜索和配对设备
    ACCESS_COARSE_LOCATION:广播接收器接收BluetoothDevice.ACTION_FOUND广播需要改权限

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    在下文中还会提到在Android6.0及以上的版本中关于ACCESS_COARSE_LOCATION权限的申请。

    • 开启蓝牙

    建立蓝牙通信之前需要验证是否有蓝牙设备,以及蓝牙设备是否已经开启。对于一个Android系统而言只有一个蓝牙适配器,通过getDefaultAdapter()方法可以返回其一个实例,如果返回为null,则说明该设备不支持蓝牙。

    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (mBluetoothAdapter == null) {
            // device doesn't support Bluetooth
    }

    接下来是检查蓝牙设备是否已经开启,如果没有开启,可以调用startActivityForResult()方法来弹出对话框让用户选择开启,这种方式不会停止当前的应用。

    if (!mBluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }
    • 搜索设备

    搜索设备可以分成两部分,一是查找已经与本机配对的设备,通过getBondedDevices()方法返回已经配对的设备信息:

    Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
    if (pariedDevices.size > 0) {
            for (BluetoothDevice device: pairedDevices) {
                    String deviceName = device.getName();
                    String deviceMACAddress = device.getAddress();
            }
    }

    二是搜索周围可用的但是还未配对的设备。
    系统在发现蓝牙设备会通过广播的形式通知app,所以在搜索设备之前需要注册广播接收器来接收发现蓝牙设备的消息,在销毁Activity时注销广播接收器。

    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
            public void onReceiver(Context context, Intent intent) {
                    String action = intent.getAction();
                    if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                            BluetoothDevie device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                    }
            }
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // Register for broadcasts when a device is discovered.
        IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
        registerReceiver(mReceiver, filter);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // Don't forget to unregister the ACTION_FOUND receiver.
        unregisterReceiver(mReceiver);
    }

    BluetoothDevice.ACTION_FOUND广播需要ACCESS_COARSE_LOCATION权限,该权限是个危险权限,在Android 6.0及以上,除了在manifest中声明还需要在java代码中申请。获取了该权限之后,在搜索蓝牙设备时才能收到系统发出的蓝牙设备发现的广播。搜索设备调用startDiscovery()方法,当周围有可用设备时,系统会通过广播的形式通知应用。

    //检查ACCESS_COARSE_LOCATION权限
                    if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION)
                            == PackageManager.PERMISSION_GRANTED){
                        Toast.makeText(MainActivity.this,"搜索回调权限已开启",Toast.LENGTH_SHORT).show();
                        if(mBluetoothAdapter.isDiscovering()){
                            mBluetoothAdapter.cancelDiscovery();
                        }
                        mBluetoothAdapter.startDiscovery();
                    }else{
                        Toast.makeText(MainActivity.this,"搜索回调权限未开启",Toast.LENGTH_SHORT).show();
                        ActivityCompat.requestPermissions(MainActivity.this,
                                new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},REQUEST_ACCESS_COARSE_LOCATION);
                    }
    
    @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            if(requestCode==REQUEST_ACCESS_COARSE_LOCATION){
                if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){
                    mBluetoothAdapter.startDiscovery();
                    if(mBluetoothAdapter.isDiscovering()){
                        mBluetoothAdapter.cancelDiscovery();
                    }
                    mBluetoothAdapter.startDiscovery();
    
                } else {
                    Toast.makeText(MainActivity.this,"action found is not granted.",Toast.LENGTH_LONG).show();
                }
    
            }
        }
    • 建立连接

    在建立连接时需要一个UUID,UUID是用来标识不同设备的ID,对于蓝牙串口设备而言其对应的UUID是“00001101-0000-1000-8000-00805F9B34FB”。

    If you are connecting to a Bluetooth serial board then try using the well-known SPP UUID 00001101-0000-1000-8000-00805F9B34FB
    https://developer.android.google.cn/reference/android/bluetooth/BluetoothDevice.html

    手机端是作为客户端与蓝牙模块进行连接的。
    在蓝牙socket进行connect之前,一定要调用BluetoothAdapter的cancelDiscovery()方法。连接的第一步是通过调用BluetoothDevice的createRfcommSocketToServiceRecord(UUID)获取BluetoothSocket.第二步是调用BluetoothSocket的connect()方法发起连接。由于connect()为阻塞调用,因此该连接过程应该在主线程之外的线程中执行。在调用connect()时,应始终确保设备未在执行设备发现。如果正在进行发现操作,则会大幅降低连接尝试的速度,并增加连接失败的可能性。

    String macAddr = "20:15:05:25:02:43";
    BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(macAddr);
    UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
    try {
        mSocket = device.createRfcommSocketToServiceRecord(uuid);
    } catch (IOException e) {
        e.printStackTrace();
    }
    new Thread(){
        @Override
        public void run() {
            mBluetoothAdapter.cancelDiscovery();
            try {
                mSocket.connect();
            } catch (IOException e) {
                try {
                    mSocket.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
                e.printStackTrace();
            }
            super.run();
        }
    }.start();

    确保在建立连接之前始终调用cancelDiscovery(),而且调用时无需实际检查其是否正在运行,如果确实想要执行检查,请调用isDiscovering()。

    • 发送数据

    try {
         OutputStream os = mSocket.getOutputStream();
         os.write("发送的数据".getBytes());
         } catch (IOException e) {
             e.printStackTrace();
         }

     

    展开全文
  • 大厂的流行App都用技术手段检测手机硬件环境,标识用户的唯一性。这样的技术手段有两个目的,一个是为了更加精准的广告投放,另外一个原因是防止被薅羊毛等。其实无论是那种目的都是对个人隐私的侵犯。从Android10...

    大厂的流行App都用技术手段检测手机硬件环境,标识用户的唯一性。这样的技术手段有两个目的,一个是为了更加精准的广告投放,另外一个原因是防止被薅羊毛等。其实无论是那种目的都是对个人隐私的侵犯。从Android10开始,API中已经禁止App读取硬件标识信息了。但是对于10以前的方法我们有没有办法屏蔽这样的行为呢?作为技术宅,闲着蛋疼,决定试一下,看看能在多大程度上阻止App的检测行为(保护自己的隐私)。


    首先来考虑app们都会检测和读取那些内容

    1. 硬件环境: imei,imsi,手机号,mac地址,手机串号,cpu串号等等一大堆。。。

    2. 网络环境: 手机连接的wifi的mac和ssid,手机保存的wifi信息,手机连接的基站信息,手机的DNS和网关信息,也是一大堆

    3. 位置环境: 通过网络环境应该很容易推导出位置,另外一个是传感器数据

    4. 软件环境: 手机安装了那些App的信息,包括app的版本号,md5等

    5. 数据环境: 估计就是sdcard里面存储的一大堆东西了,包括手机里的照片的基本信息,还有联系人等等信息

       


       

    如果直接阻止app读取这些信息,很多应用就起不来了,就像小媳妇一样不和你搞了;所以说还不能霸王硬上弓,只能伪造这些数据给他们读。而且伪造的数据还不能太假,不然直接封号了。反过来说如果不被封,就证明伪造的数据被App认可了。

     

    本次研究的核心就在于如何方便的伪造出数据(相当于是一套马甲)。总体方向有两个一是基于Xposed相关的技术,另一个是直接自己改Rom。

     

    其实Xposed是最简单的方法。由于国内移动互联网安全环境十分恶劣,各个厂商基本把Xposed当成潜在威胁,见到就封。所以如果想把Xposed用到大厂的App上,就不能直接使用,必须要对Xposed的特征做修改。这样使用Xposed基本就不会被识别也不会被封号了。Xposed的另外一个缺点是不能在高版本的android上面使用。

     

    自己改Rom难度也不低,要改很多东西。要改的东西基本就是Xposed需要hook的东西。

     

    我使用了Xposed+改机rom的方式,在App访问涉及身份敏感信息时让他们读到的是马甲上的信息,不让他们读取真实的值。当然也可以指定包名白名单,白名单下的允许读取真实内容。

     

    先说测试和验证方法:提前准备好一系列的相关数据,就是前面的5类内容,以备随时切换。然后用这些信息注册某大厂App的账号,看看是否能注册成功,成功的话,就再跑几天,看看会不会被封。

    目前在一个物理设备上成功注册了几个大厂App的号,分别使用了不同的信息。并且到目前为止还都正常登陆和运行。后面再多测试几个厂家的App看看是否能够经得起考验

    欢迎感兴趣的朋友可以发邮件给我,一起讨论​

    公众号:数字云信息技术

    展开全文
  • Android 检测 手机硬件状态 的Utils

    千次阅读 2016-11-01 11:02:13
        import android.annotation.SuppressLint;...import android.app.Activity;  import android.bluetooth.BluetoothAdapter;  import android.content.Context;  import android.
  • 智能防盗系统功能概述: 本项目基于FRDM-KL25Z板卡...下面为硬件抽象层(HAL),之上为应用程序层(APP)。以后的项目可以直接在此基础上进行开发,节省时间并且能大大提高效率。 智能防盗系统电路板实物图: 视频演示:
  • Windows Phone 硬件检测

    2013-12-21 14:16:00
    Windows Phone 8 手机分辨率 private static bool IsWvga{ get { return App.Current.Host.Content.ScaleFactor == 100; }}private static bool IsWxga{ get { return App.Current.Host.Content.ScaleFacto.....
  • 其使用方式为腕部佩戴(可以有其它变种佩戴形式),基本功能为运动记录、睡眠质量检测、时间显示和静音闹钟、与智能手机的配合产生的实用功能(如来电提醒、手机防丢、一键拍照和解锁等)。 百度智能运动手环硬件...
  • 免费好用的APP应用安全在线检测

    千次阅读 2020-09-25 15:47:36
    目前国内手机没有一家手机硬件厂商是自研安全的,都是采用第三方合作或者基于**引擎深度优化定制的。当手机在安装某一款应用软件app的时候提示出现安全风险,就会全网提示,很不友好。那么问题来了,如何在应用上架...
  • 通过PC端或手机等电子设备了解室内空气指标,也可分析处理数据,为用户提供直观的空气质量信息并提出合理建议。通过上位机控制监测端和净化端具体工作细节,编辑工作状态等。 (5)预防家中灾难发生,防火灾、防燃气...
  • 51单片机DHT11温湿度ESP8266WiFi手机APP显示设计

    万次阅读 多人点赞 2019-03-17 12:30:53
    温湿度检测设计。基于51单片机、ESP8266WiFi模块、温...DHT11温湿度传感器采集数据传送给单片机,单片机将数据处理之后通过ESP8266WiFi模块将数据发送给手机App。WiFi模块有两个作用:一是串口转WiFi,单片机通过串...
  • 手机APP测试点: 功能测试:多注意核心业务风险(如:注册、登录、付费、订单等) 兼容性测试:系统兼容性、硬件兼容性、软件兼容性、数据兼容性 网络流量测试:在不同的网络模式下的流量监控 安装测试:安装...
  • 2、手机APP和WiFi模块互联后,可以实时显示交流电压、交流电流、功率和电量实时显示在手机上。 3、当功率超过200W时,继电器自动断开。功率不超过200W时,可以手动控制继电器的开关。 4、手机和WiFi模块连接后,手机...
  • 1、通过单片机采集DHT11检测温湿度值,并且通过蓝牙将数据发送到手机。 数据:T:23’C H:72% //标识温度23 湿度72 3.1.2系统总体结构 本系统具体框图如下图所示: 原理图: 5V电源电路设计 本系统选择5V直流电源...
  • 如何通过目标追踪功能制作一个手机摄像头实时跟踪小车,该设计运用OpenCV的图像处理APP手机APP通过摄像头实时跟踪设定的颜色目标,并且通过手机蓝牙将目标坐标位置和大小等信息输出,配合蓝牙串口模块和我写的配套...
  • 1.手机APP远程控制:STM32L432开发板通过WIFI模块与因特网服务器建立TCP连接,服务器使用腾讯云,服务器系统为ubuntu,就是在ubuntu上建立一个TCP中继服务器,实现远程手机端与家居系统的信息中继传递,从而实现远程...
  • 因为本人不会苹果手机应用软件的开发,故APP只有安卓版本。注意:手机要有OTG功能,现在手机基本都有此功能,如何获知自己手机是否有OTG功能,很简单,通过OTG线接上USB接口的电脑鼠标或键盘,如果能正常操作手机,就...
  • 总结下几个常用到的获取手机权限,从iOS8以后,获取手机某种权限需要在info.plist文件中添加权限的描述文件 <key>NSContactsUsageDescription</key> <string>App需要您的允许,才能访问...
  • 物联网行业快速发展,产品品质日益重要。尤其是近年来,传统企业互联网+步伐加快,物联网化、智能化产品爆炸式涌现,稳定性...我们近期接触的掌动智能,从手机APP手机硬件起家,已推出物联网智能产品检测认证、运行监
  • 实现温度的实时检测,并通过两个异步串口将数据发送至串口屏HMI和与蓝牙模块相连接的手机上。支持手机APP和串口屏进行实时的相关数据更改。单片机根据数据要求,当实时温度不在合理范围时,做出应激反应(表现在IO口...
  • APP启动流程

    2017-06-26 23:52:56
    首先看张android手机系统图 ...Boot Loader:这是进入android系统前的引导程序,主要检测外部RAM、网络,内存、硬件参数等。 Kernel层: android系统的内核层,到在这里才刚进入android系统,启...
  • 毕业设计要求使用手机APP与单片机硬件进行有线通信,至于为什么不用蓝牙、无线,我也不知道 ????。有线通信,无非就是USB或者串口,USB不是所有的单片机都有,但是几乎所有的单片机都带有串口,而且USB协议比较复杂...
  • 通过Twilio API通过webhook每隔半分钟将温度,湿度和移动信息作为WhatsApp消息发送到您的手机硬件组件: 公/母跳线× 1 SparkFun可焊接面包板 - 迷你× 2 SparkFun超声波传感器 - HC-SR04× 1 DHT11温湿度传感器...
  • 为什么要学硬件

    2017-12-04 14:44:10
    现在我正在设计制作智能鱼塘,智能鱼塘具备鱼儿生活所需要的各种功能,比如仿照太阳光给鱼儿提供合适的光照,定时自动喂食,自动净水,自动检测水质,自动供氧,自动升温等等功能,这些功能还都可以通过手机APP手动...
  • 为什么要学习硬件

    2017-12-03 21:46:03
    现在我正在设计制作智能鱼塘,智能鱼塘具备鱼儿生活所需要的各种功能,比如仿照太阳光给鱼儿提供合适的光照,定时自动喂食,自动净水,自动检测水质,自动供氧,自动升温等等功能,这些功能还都可以通过手机APP手动...
  • 毕设一:老年人摔倒检测及报警装置

    千次阅读 多人点赞 2020-09-05 10:13:54
    我的毕设:老年人摔倒检测及报警装置小白上路任务要求基本思路基本实施方案论文摘要硬件原理图APP界面 小白上路 哈哈哈,毕业了3个月的我已然逐渐融入公司的生活,现在想总结一下我大学里的毕业设计…老年人摔倒检测...
  • 如果我们在一些和硬件打交道的公司,我们需要开发一些App,难免会用手机连接usb来调试信息. 这个时候我们手机插上usb硬件的时候,我们想实时查看我们AS实时Log日志是不可能的.因为我们没有连接数据线,ASLog日志检测不到...
  • 安装好了之后如果打开应用卡住或者闪退可能是手机上的安全软件限制了APP的权限,这时候需要去手机设置里开启APP使用摄像头和蓝牙的权限,以原生系统为例操作步骤如下:设置-应用-已安装-i颜艺Boy-权限管理。

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

手机硬件检测app