精华内容
下载资源
问答
  • 安卓开发时 ,有时候需要用手机访问本地服务器,如读取一些本地服务器上的数据,用电脑上的地址去读取会发现读不到数据,因为127.0.0.1或localhost是”本地环回地址”,手机不能用这地址来访问。这时要在手机中把...

    在安卓开发时 ,有时候需要用手机访问本地服务器,如读取一些本地服务器上的数据,用电脑上的地址去读取会发现读不到数据,因为127.0.0.1或localhost是”本地环回地址”,手机不能用这地址来访问。这时要在手机中把127.0.0.1或localhost替换为电脑的IP地址(手机与电脑在同一局域网)用电脑访问本地服务器时的地址
    手机用该地址访问出错
    获取电脑的ip地址
    代码中的访问地址

    展开全文
  • 手机导航下载全国电子眼经纬度离线数据包是.dat文件,如何在电脑版地图的javascript开发中读取数据
  • 但是相信很多人不是很清楚在电脑上如何直接读取KML文件,当然手机上支持读取kml文件的APP很多了,像奥维就是最常见了。那么今天我们就来介绍一下ArcGIS中一个叫做Data Interoperability的扩展工具,通常大家安装...

    相信即使是很多学GIS出身的同行,听过ArcGIS Data Interoperability的也不是很多。大家都知道ArcGIS可以将shp数据转出为多种格式,像kml/DWG是很常见啦。但是相信很多人不是很清楚在电脑上如何直接读取KML文件,当然手机上支持读取kml文件的APP很多了,像奥维就是最常见了。那么今天我们就来介绍一下ArcGIS中一个叫做Data Interoperability的扩展工具,通常大家安装arcgis是不会自动安装这个插件的。所以今天的重点来了,我已经给大家找好了安装包了。下面这段是官方解释,我觉得比我说的直观专业,就贴出来了。

    图片

    使用ArcGIS数据互操作(Data Interoperability)扩展可以直接读访问几十种空间数据格式,包括GML、DWG/DXF文件、MicroStation Design文件、MapInfo MID/MIF文件和TAB文件类型等。用户可以通过拖放方式让这些数据和其它数据源在ArcGIS中直接用于制图、空间处理、元数据管理和3D globe制作。例如,所有制图功能都可使用这些数据源,包括查看要素和属性、识别要素和进行选择。

    ArcGIS数据互操作(Data Interoperability)技术来自Safe软件公司(世界领先的GIS互操作提供商)的FME(Feature Manipulation Engine)产品。该扩展由Esri和Safe软件公司共同维护。ArcGIS数据互操作(Data Interoperability)还包含FME Workbench,它提供一系列数据转换工具用来构建复杂矢量数据格式的转换器。

    双击下面exe安装好之后,再去扩张模块中调出Data Interoperability 扩展模块即可。

    图片

    图片

    老规矩,需要的童鞋微信公众号后台回复0109就可以啦。好啦,今天就到这里啦,你的点赞是我努力最大的动力啦。公众号:观察者GIS

    展开全文
  • 手机或其他电子设备通过USB插入电脑上,并且以MTP(媒体传输协议)方式连接时,可“计算机”中看到类似计算机盘符的便携式设备文件夹显示,但是这并不是一个计算机盘符,并不能通过常规读取文件的方式读取其中的...

    手机或其他电子设备通过USB插入电脑上,并且以MTP(媒体传输协议)方式连接时,可在“计算机”中看到类似计算机盘符的便携式设备文件夹显示,但是这并不是一个计算机盘符,并不能通过常规读取文件的方式读取其中的数据。那么如何才能读取便携式设备(如只能手机)的数据呢?通常读取IOS设备是通过调用iTunesMobileDevice.dll里面写好的服务来进行的,而安卓设备则是通过ADB命令或者自己写服务来操作,前者ADB命令bug太多,windows下的命令行程序及其难用,而后者由于难度太大导致开发周期延长也不是较好的方法,本篇则介绍通过使用WPD的方式读取便携式设备。主要包括以下几个部分内容:


    什么是MTP模式

    媒体传输协议,是基于PTP(Picture Transfer Protocol)协议的扩展,主要用于传输媒体文件。
    MTP模式是微软制订的一套媒体传输协议(Media Transfer Protocol),由微软公司制定的在设备之间进行多媒体文件交换的通信协议,它实现的是把简单的文件复制变成一种协议性的传输方式。MTP既可以实现在USB协议上,也可以实现在TCP/IP协议上,它属于上层的应用协议,而不关心底层传输协议。目前大部分设备的应用都是基于USB协议。

    什么是WPD

    Windows Portable Devices译作Windows 便携设备 (WPD) 是一种驱动程序技术,可支持广泛的可移动设备,比如移动电话、数码相机和便携媒体播放器。WPD 提供了标准化的基础结构,以实现应用程序和连接到正在运行 Windows 的 PC 上的便携设备之间的数据传输。WPD 还可为应用程序提供设备及其内容的统一视图以及标准化机制,从而获得访问数据的权限并对数据进行传输。

    调用WPD

    c#程序使用WPD需要添加对Interop.PortableDeviceApiLib.dll和Interop.PortableDeviceTypesLib.dll两个COM组件的引用。但是由于其是用c++编译的,对于有些方法的调用并不能得到正确的结果,因此在使用这两个组件之前需要对Interop.PortableDeviceApiLib.dll组件进行修改再重新编译。

    修改Interop.PortableDeviceApiLib.dll

    • 首先创建一个窗体程序,添加上述两个引用,生成程序,然后就可以在程序的DEBUG目录中找到上述两个dll。
    • 将Interop.PortableDeviceApiLib.dll拷贝到桌面,打开C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin目录下的反汇编工具ildasm.exe。
      这里写图片描述

    • 打开刚才拷贝到桌面上的Interop.PortableDeviceApiLib.dll,并转储为Interop.PortableDeviceApiLib.il

    • 编辑刚才转储的.il文件,修改GetDevices 方法
      修改前 instance void GetDevices([in][out] string& marshal( lpwstr) pPnPDeviceIDs,
      修改后 instance void GetDevices([in][out] string[] marshal( lpwstr[]) pPnPDeviceIDs,
    • 打开控制台程序,执行命令
      c:\windows\microsoft.net\framework\v4.0.30319\ilasm.exe /dll/resource=Interop.PortableDeviceApiLib.res Interop.PortableDeviceApiLib.il进行编译,然后得到了修改后的Interop.PortableDeviceApiLib.dll文件了。
    • 重新添加对修改后的Interop.PortableDeviceApiLib.dll的引用,并修改嵌入式互操作类型为false。

    使用WPD读取设备基础信息

    枚举所有设备

            /// <summary>
            /// 枚举所有便携式设备(MTP模式)
            /// </summary>
            /// <returns>返回设备id数组</returns>
            public string[] EnumerateDevices()
            {
                string[] devicesIds = null;
                PortableDeviceManagerClass deviceManager = new PortableDeviceManagerClass();
                uint deviceCount = 1;//设备数目初始值必须大于0
                deviceManager.GetDevices(null, ref deviceCount);//获取设备数目必须置第一个参数为null
                if (deviceCount > 0)
                {
                    devicesIds = new string[deviceCount];
                    deviceManager.GetDevices(devicesIds, ref deviceCount);
                }
                return devicesIds;
            }

    连接与断开

    • 连接便携式设备并读取基本信息。利用刚才枚举设备获得的设备Id号,可以对设备进行一系列的操作。
      连接和断开设备
            /// <summary>
            /// 连接设备
            /// </summary>
            /// <param name="DeviceId"></param>
            /// <param name="portableDevice"></param>
            /// <param name="deviceContent"></param>
            /// <returns></returns>
            public IPortableDeviceValues Connect(string DeviceId,out PortableDevice portableDevice,out IPortableDeviceContent deviceContent)
            {
                IPortableDeviceValues clientInfo = (IPortableDeviceValues)new PortableDeviceTypesLib.PortableDeviceValuesClass();
                portableDevice = new PortableDeviceClass();
                portableDevice.Open(DeviceId, clientInfo);
                portableDevice.Content(out deviceContent);
    
                IPortableDeviceProperties deviceProperties;
                deviceContent.Properties(out deviceProperties);
    
                IPortableDeviceValues deviceValues;
                deviceProperties.GetValues("DEVICE", null, out deviceValues);
                return deviceValues;
            }
            /// <summary>
            /// 断开设备
            /// </summary>
            /// <param name="portableDevice"></param>
            public void Disconnect(PortableDevice portableDevice)
            {
                portableDevice.Close();
            }

    读取设备

    • 连接设备返回IPortableDeviceValues,根据返回的IPortableDeviceValues读取设备信息
            /// <summary>
            /// 设备类型
            /// </summary>
            public enum DeviceType
            {
                Generic = 0,
                Camera = 1,
                MediaPlayer = 2,
                Phone = 3,
                Video = 4,
                PersonalInformationManager = 5,
                AudioRecorder = 6
            };
            /// <summary>
            /// 获取设备类型
            /// </summary>
            /// <param name="DeviceValues"></param>
            /// <returns></returns>
            public DeviceType GetDeviceType(IPortableDeviceValues DeviceValues)
            {
                _tagpropertykey deviceTypeKey = new _tagpropertykey() { fmtid = new Guid("26d4979a-e643-4626-9e2b-736dc0c92fdc"), pid = 15 };
                uint propertyValue;
                DeviceValues.GetUnsignedIntegerValue(ref deviceTypeKey, out propertyValue);
                DeviceType deviceType = (DeviceType)propertyValue;
                return deviceType;
            }
            /// <summary>
            /// 获取设备名
            /// </summary>
            /// <param name="DeviceValues"></param>
            /// <returns></returns>
            public string GetDeviceName(IPortableDeviceValues DeviceValues)
            {
                _tagpropertykey property = new _tagpropertykey() { fmtid = new Guid("ef6b490d-5cd8-437a-affc-da8b60ee4a3c"), pid = 4 };
                string name;
                DeviceValues.GetStringValue(ref property, out name);
                return name;
            }
            /// <summary>
            /// 获取固件版本
            /// </summary>
            /// <param name="DeviceValues"></param>
            /// <returns></returns>
            public string GetFirmwareVersion(IPortableDeviceValues DeviceValues)
            {
                _tagpropertykey deviceTypeKey = new _tagpropertykey() { fmtid = new Guid("26d4979a-e643-4626-9e2b-736dc0c92fdc"), pid = 3 };
                string firmwareVersion;
                DeviceValues.GetStringValue(ref deviceTypeKey, out firmwareVersion);
                return firmwareVersion;
            }
            /// <summary>
            /// 获取制造商
            /// </summary>
            /// <param name="DeviceValues"></param>
            /// <returns></returns>
            public string GetManufacturer(IPortableDeviceValues DeviceValues)
            {
                _tagpropertykey property = new _tagpropertykey() { fmtid = new Guid("26d4979a-e643-4626-9e2b-736dc0c92fdc"), pid = 7 };
                string manufacturer;
                DeviceValues.GetStringValue(ref property, out manufacturer);
                return manufacturer;
            }
            /// <summary>
            /// 获取型号
            /// </summary>
            /// <param name="DeviceValues"></param>
            /// <returns></returns>
            public string GetModel(IPortableDeviceValues DeviceValues)
            {
                _tagpropertykey property = new _tagpropertykey() { fmtid = new Guid("26d4979a-e643-4626-9e2b-736dc0c92fdc"), pid = 8 };
                string model;
                DeviceValues.GetStringValue(ref property, out model);
                return model;
            }
            /// <summary>
            /// 获取设备或设备下文件夹的所有对象(文件、文件夹)的ObjectId
            /// </summary>
            /// <param name="deviceId"></param>
            /// <param name="parentId"></param>
            /// <returns></returns>
            public List<string> GetChildrenObjectIds(IPortableDeviceContent content, string parentId)
            {
                IEnumPortableDeviceObjectIDs objectIds;
                content.EnumObjects(0, parentId, null, out objectIds);
    
    
                List<string> childItems = new List<string>();
                uint fetched = 0;
                do
                {
                    string objectId;
                    objectIds.Next(1, out objectId, ref fetched);
                    if (fetched > 0)
                    {
                        childItems.Add(objectId);
                    }
                } while (fetched > 0);
                return childItems;
            }
            /// <summary>
            /// 获取总容量和可用容量
            /// </summary>
            /// <param name="deviceContent"></param>
            /// <param name="storageId"></param>
            /// <param name="freeSpace"></param>
            /// <param name="storageCapacity"></param>
            public void GetStorageCapacityAnFreeSpace(IPortableDeviceContent deviceContent, string storageId, out ulong freeSpace, out ulong storageCapacity)
            {
                IPortableDeviceProperties deviceProperties;
                deviceContent.Properties(out deviceProperties);
    
                IPortableDeviceKeyCollection keyCollection = (IPortableDeviceKeyCollection)new PortableDeviceTypesLib.PortableDeviceKeyCollectionClass();
                _tagpropertykey freeSpaceKey = new _tagpropertykey();
                freeSpaceKey.fmtid = new Guid("01a3057a-74d6-4e80-bea7-dc4c212ce50a");
                freeSpaceKey.pid = 5;
    
                _tagpropertykey storageCapacityKey = new _tagpropertykey();
                storageCapacityKey.fmtid = new Guid("01a3057a-74d6-4e80-bea7-dc4c212ce50a");
                storageCapacityKey.pid = 4;
    
                keyCollection.Add(freeSpaceKey);
                keyCollection.Add(storageCapacityKey);
    
                IPortableDeviceValues deviceValues;
                deviceProperties.GetValues(storageId, keyCollection, out deviceValues);
    
                deviceValues.GetUnsignedLargeIntegerValue(ref freeSpaceKey, out freeSpace);
                deviceValues.GetUnsignedLargeIntegerValue(ref storageCapacityKey, out storageCapacity);
            }
    • 调用顺序
                string[] deviceIds = EnumerateDevices();
                PortableDevice portableDevice;
                IPortableDeviceContent deviceContent;
                IPortableDeviceValues deviceValues = Connect(deviceIds[0], out portableDevice,out deviceContent);
                string deviceName = GetDeviceName(deviceValues);
                DeviceType deviceType = GetDeviceType(deviceValues);
                string firmwareVersion = GetFirmwareVersion(deviceValues);
                string manufacturer = GetManufacturer(deviceValues);
                string model = GetModel(deviceValues);
                List<string> storagesIds = GetChildrenObjectIds(deviceContent, "DEVICE");
                StringBuilder storagesSb = new StringBuilder();
                foreach (string storageId in storagesIds)
                {
                    ulong freeSpace;
                    ulong storageCapacity;
                    GetStorageCapacityAnFreeSpace(deviceContent, storageId, out freeSpace, out storageCapacity);
                    storagesSb.AppendFormat("可用容量为{0}GB,总容量为{1}GB",
                        Math.Round((double)freeSpace / 1024 / 1024 / 1024, 3), Math.Round((double)storageCapacity / 1024 / 1024 / 1024, 3));
                }
                Disconnect(portableDevice);
    
                textBox1.AppendText(string.Format("当前设备数目:{0}个\r\n", deviceIds.Length));
                textBox1.AppendText(string.Format("连接的设备名称:{0}\r\n", deviceName));
                textBox1.AppendText(string.Format("连接的设备类型:{0}\r\n", deviceType.ToString()));
                textBox1.AppendText(string.Format("连接的设备固件版本:{0}\r\n", firmwareVersion));
                textBox1.AppendText(string.Format("连接的设备制造厂商:{0}\r\n", manufacturer));
                textBox1.AppendText(string.Format("连接的设备型号:{0}\r\n", model));
                textBox1.AppendText(storagesSb.ToString());
    • 最后附上结果

    这里写图片描述

    • 对比资源管理器中

    这里写图片描述

    展开全文
  • 有的便签是在电脑/手机本地使用的,数据也会保存在本地。如果要备份的话,可以通过复制粘贴等形式,把内容保存到别的地方。不过现在有一种便签是云便签,云便签的数据是自动保存到云端。那么便签云备份的内容怎么...

    便签软件往往保存着用户大量重要数据,如果用户要换电脑或者手机,如何备份便签内容呢?

    有的便签是在电脑/手机本地使用的,数据也会保存在本地。如果要备份的话,可以通过复制粘贴等形式,把内容保存到别的地方。不过现在有一种便签是云便签,云便签的数据是自动保存到云端。那么便签云备份的内容怎么找到呢?不同种类的云便签,便签云备份的方法不同。

    如何备份便签

    像敬业签这样的云便签,数据是自动存储到云端的。用户打开敬业签后,所看到的数据都是在云端存储的数据。如果要换手机、换电脑,把自己的敬业签账号登录到新设备上,就可以从新设备上读取云端内容了。

    除了数据云端存储之外,敬业签还有时间轴功能。敬业签的时间轴会自动记录用户新增/修改/删除的内容,并且没有时间限制,误删的内容可以从时间轴里找回。需要注意的是,时间轴里的内容时间轴里的内容也是保存到云端的,但是可以手动删除。敬业签分类里删除的内容,如果从时间轴里二次删除,那就是彻底删除无法找回了。
    如何备份便签
    敬业签是多端同步的云便签,支持在Windows、web、Android、iPhone、iPad、Mac上使用,一端操作多端系统同步,除了便签基础的记事、提醒功能之外,还有月视图、内容标注已完成、内容推送、内容导出、团队协作、更改皮肤颜色等功能。

    展开全文
  • 1.问题:安卓自带数据库SQLite数据读取时(ddms---data----data----yourprojectname----databases),当点击data时目录展不开。...(muzisoft.exe)安装在电脑上,并连接手机。点击一键root,等几分钟即可。
  • 大话数据结构

    2018-12-14 16:02:18
    求100个人的高考成绩平均分与求全省所有考生的成绩平均分占用时间和内存存储有非常大的差异,我们自然追求高效率和低存储的算法来解决问题。 2.6.1正确性 22 2.6.2可读性 23 2.6.3健壮性 23 2.6.4时间效率高...
  • 在手机电脑上,编写客户端程序,它会从ARM板上获得数据并显示出来 这2个程序之间,并不需要实现复杂的协议 约定数据格式 传输一帧帧的数据 实际上,我们可以使用现成的程序: mjpg-streamer,它运行...
  • 像黑客入侵互联网只要有数据网络,就能使用数据网络远程操作目标的笔记本电脑、网络服务器、企业网站,从而任意地读取或篡改目标的重要数据,又又或者使用目标系统软件的功能模块,比如对手机的麦克风开展监听,...
  • 像黑客入侵互联网只要有数据网络,就能使用数据网络远程操作目标的笔记本电脑、网络服务器、企业网站,从而任意地读取或篡改目标的重要数据,又又或者使用目标系统软件的功能模块,比如对手机的麦克风开展监听,...
  • 1.进软件之后可以点击连接蓝牙,选择你的蓝牙模块(模块需要事先在手机系统蓝牙设置里面配对好),连接之后如果有目标信息就会通过蓝牙发送到模块,Arduino进行读取就可以了。 2.点击左上角的按钮进入预览画面,...
  • Purdue公司计划把RFID标签使用到所有的瓶装OxyContin药物,并将捐赠100台能读取各种采用RFID技术包装的手持型扫描仪,来辅助执法者和帮助如何防止国家货物被偷窃的研究工作者。FBI法律强制执行发展协会(FBI-LEEDA)...
  • 运行的时候用的是家里的电脑和自己的手机,如果都一个局域网里(手机用WIFI)数据传输没有问题,如果切换到外网后(ADSL出来的网线连接电脑手机用3G)用我电脑cmd命令ipconfig查到的PPP ip输入到手机浏览器...
  • 今天小编来讲下如何利用网云穿内网穿透来实现逆向usb设备共享,将远程客户电脑上通过USB数据线连接的手机,共享到我们的电脑上,然后用来逆向读取对方电脑的usb; 需要的工具: 1、网云穿内网穿透 2、USB ...
  • 您将学习如何检测设备可用的传感器以及如何从这些传感器读取数据。 设备传感器 基本传感器要注意三大类:运动,环境和设备位置。 运动传感器检测围绕设备三个轴(X,Y和Z)的力的变化,如下所示: 运动传感器...
  • Google三大论文读后感

    2019-04-18 15:26:21
    具体一点,我们在手机上的通话记录,聊天记录,手机电脑储存的图像视频音频,,都属于大数据的范畴。 大数据时代,我们看到的各种数据如何储存呢?储存之后,如何原封不动的读取出来呢?谷歌提出了三篇...
  • anzhuoxitong 刷机

    2014-04-06 18:03:56
     步骤三、然后把手机数据线连接好电脑,然后打开安装好的卓大师,卓大师连接手机成功之后 点击ROM专区。这里面会有很多手机的刷机包。找一个适合自己机型的刷机包下载。  步骤四、然后按照图的指示,点击...
  • 概述消费电子领域,跌落通常会对便携式电子产品(如手机,平板,笔记本电脑)的零部件(屏幕及机械硬盘)造成损伤,如何可靠的检测这些跌落事件并实时启动保护装置,采取主动避震措施来减少触地带来的冲击。...
  • 这里以智能小车作为项目的设计对象,不是为了要做出一个功能如何丰富、复杂的一个小车,而是通过这个小车平台,来把自己所学的、正在学的、想学的都装载这个小车,并不是说要做出怎样的一款产品设计,而是通过这...
  •  cc实例108 如何在图片平滑移动文字   3.9 图像管理   cc实例109 管理计算机内图片文件的程序   cc实例110 提取并保存应用程序图标   3.10 图片动画   cc实例111 利用图片制作屏幕保护程序   ...
  • 实例108 如何在图片平滑移动文字 3.9 图像管理 实例109 管理计算机内图片文件的程序 实例110 提取并保存应用程序图标 3.10 图片动画 实例111 利用图片制作屏幕保护程序 实例112 图片动画 3.11 简单游戏...
  •  cc实例108 如何在图片平滑移动文字   3.9 图像管理   cc实例109 管理计算机内图片文件的程序   cc实例110 提取并保存应用程序图标   3.10 图片动画   cc实例111 利用图片制作屏幕保护程序   ...
  •  cc实例108 如何在图片平滑移动文字   3.9 图像管理   cc实例109 管理计算机内图片文件的程序   cc实例110 提取并保存应用程序图标   3.10 图片动画   cc实例111 利用图片制作屏幕保护程序   ...
  •  cc实例108 如何在图片平滑移动文字   3.9 图像管理   cc实例109 管理计算机内图片文件的程序   cc实例110 提取并保存应用程序图标   3.10 图片动画   cc实例111 利用图片制作屏幕保护程序   ...
  •  cc实例108 如何在图片平滑移动文字   3.9 图像管理   cc实例109 管理计算机内图片文件的程序   cc实例110 提取并保存应用程序图标   3.10 图片动画   cc实例111 利用图片制作屏幕保护程序   ...

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

如何在电脑上读取手机数据