精华内容
下载资源
问答
  • GPS定位器源码分享

    千次阅读 2017-10-11 21:52:32
    GPS定位器源码分享(技术交流) //******************************************************** //GPS包接收处理 //完整包为 "$GPRMC,054209.000,A,2232.9850,N,11404.9159,E,1.37,,080408,,,D*7F\0x0d\0x0a"; ...

    GPS定位器源码分享(技术交流)


    //********************************************************

    //GPS包接收处理

    //完整包为 "$GPRMC,054209.000,A,2232.9850,N,11404.9159,E,1.37,,080408,,,D*7F\0x0d\0x0a";

    void GpsPacketParse(void)

    {

        u32 ulTmp;

        unsigned char i, ucPos, tmp;

     

        //GPS初始为无信号

        GpsData.GpsSignalFlag = FALSE;

     

        //校验数据包是否正确

        GpsData.bGpsPacketRcvSuccess = FALSE;

        if (CheckGpsPacket(ucGpsDataBuffer) != CHECK_SUCCESS)

        {

        return;

        }

     

        //只需要对"GPRMC"包进行处理

        if (CompareStr(ucGpsDataBuffer, "GPRMC", 5) == TRUE)

        {

        ucPos = 13;

        while (ucGpsDataBuffer[ucPos++] != ',') //查找时间后面的逗号

        {

            if (ucPos > 250)

            {

            return;

            }

        }

     

        GetGpsTime();  //更新时间

        if (ucGpsDataBuffer[ucPos] != 'A')

        {

            return;

        }

     

        //获取时间

        //获取小时

        GpsData.UTC_Time[0] = ucGpsDataBuffer[6];

        GpsData.UTC_Time[1] = ucGpsDataBuffer[7];

            GpsData.uiTime = CharToValue(ucGpsDataBuffer[6]);

            GpsData.uiTime = GpsData.uiTime * 10 + CharToValue(ucGpsDataBuffer[7]);

        GpsData.uiTime *= 3600;  // 1 Hour = 3600 Second

        if (IsNumber(GpsData.UTC_Time, 2) == FALSE)

        {

            return;

        }

     

        //获取分钟

        GpsData.UTC_Time[2] = ':';

        GpsData.UTC_Time[3] = ucGpsDataBuffer[8];

        GpsData.UTC_Time[4] = ucGpsDataBuffer[9];

        GpsData.uiTime += CharToValue(ucGpsDataBuffer[8]) * 10 * 60;

        GpsData.uiTime += CharToValue(ucGpsDataBuffer[9]) * 60;

        if (IsNumber(GpsData.UTC_Time + 3, 2) == FALSE)

        {

            return;

        }

     

        //获取秒

        GpsData.UTC_Time[5] = ':';

        GpsData.UTC_Time[6] = ucGpsDataBuffer[10];

        GpsData.UTC_Time[7] = ucGpsDataBuffer[11];

        GpsData.uiTime += CharToValue(ucGpsDataBuffer[10]);

        GpsData.uiTime += CharToValue(ucGpsDataBuffer[11]);

        if (IsNumber(GpsData.UTC_Time + 6, 2) == FALSE)

        {

            return;

        }

     

        ucPos = 12;

        while (ucGpsDataBuffer[ucPos++] != ',') //查找时间后面的逗号

        {

            if (ucPos > 250)

            {

            return;

            }

        }

          while (ucGpsDataBuffer[ucPos++] != ',') //查找'A'后面的逗号

        {

            if (ucPos > 250)

            {

            return;

            }

        }

        //获取维度

        //保存未处理的纬度数据

        for (i = 0; i < 9; i++)

        {

               GpsData.InitLatitude[i] = ucGpsDataBuffer[ucPos + i];

        }

            GpsData.Latitude[0] = ucGpsDataBuffer[ucPos++];

        GpsData.Latitude[1] = ucGpsDataBuffer[ucPos++];

        if (IsNumber(GpsData.Latitude, 2) == FALSE)

        {

            return;

    }

    GpsData.Latitude[2] = '.';

            ulTmp = CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ucPos++;//'.'

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 5 / 3;

    i = ulTmp / 100000;

            GpsData.Latitude[3] = ValueToChar(i);

            i = ulTmp % 100000 / 10000;

            GpsData.Latitude[4] = ValueToChar(i);

            i = ulTmp % 10000 / 1000;

            GpsData.Latitude[5] = ValueToChar(i);

    i = ulTmp % 1000 / 100;

            GpsData.Latitude[6] = ValueToChar(i);

    i = ulTmp % 100 / 10;

            GpsData.Latitude[7] = ValueToChar(i);

    i = ulTmp % 10;

            GpsData.Latitude[8] = ValueToChar(i);

            if (IsNumber(GpsData.Latitude + 3, 6) == FALSE)

    {

    return;

    }

        while (ucGpsDataBuffer[ucPos++] != ',')

    {

        if (ucPos > 250)

    {

        return;

    }

    }

    //维度指示符,指示北维或南维

    GpsData.LatitudeIndicator = ucGpsDataBuffer[ucPos++];

            ucPos++; //','

     

    //获取经度

     

    //保存未处理的经度数据

    for (i = 0; i < 10; i++)

    {

       GpsData.InitLongitude[i] = ucGpsDataBuffer[ucPos + i];

    }

     

            GpsData.Longitude[0] = ucGpsDataBuffer[ucPos++];

    GpsData.Longitude[1] = ucGpsDataBuffer[ucPos++];

    GpsData.Longitude[2] = ucGpsDataBuffer[ucPos++];

            if (IsNumber(GpsData.Longitude, 3) == FALSE)

    {

    return;

    }

    GpsData.Longitude[3] = '.';

            ulTmp = CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ucPos++;//'.'

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    ulTmp = ulTmp * 5 / 3;

    i = ulTmp / 100000;

            GpsData.Longitude[4] = ValueToChar(i);

            i = ulTmp % 100000 / 10000;

            GpsData.Longitude[5] = ValueToChar(i);

            i = ulTmp % 10000 / 1000;

            GpsData.Longitude[6] = ValueToChar(i);

    i = ulTmp % 1000 / 100;

            GpsData.Longitude[7] = ValueToChar(i);

    i = ulTmp % 100 / 10;

            GpsData.Longitude[8] = ValueToChar(i);

    i = ulTmp % 10;

            GpsData.Longitude[9] = ValueToChar(i);

            if (IsNumber(GpsData.Longitude + 4, 3) == FALSE)

    {

    return;

    }

        while (ucGpsDataBuffer[ucPos++] != ',')

    {

        if (ucPos > 250)

    {

        return;

    }

    }

    //获取经度指示符

    GpsData.LongitudeIndicator = ucGpsDataBuffer[ucPos++];

            ucPos++;//','

     

    if (ucGpsDataBuffer[ucPos] != ',')

    {

        //有速度

    //获取速度

    for (i = 0; i < 6; i ++)

    {

         GpsData.InitSpeed[i] = '0';

    }

    GpsData.InitSpeed[3] = '.';

    tmp = 0;

    while (ucGpsDataBuffer[ucPos + tmp] != '.')

    {

        tmp ++;

    if (tmp > 3)

    {

        break;

    }

    }

    for (i = 0; i < tmp; i ++)

    {

         GpsData.InitSpeed[3 - tmp + i] = ucGpsDataBuffer[ucPos + i];

    }

    GpsData.InitSpeed[4] = ucGpsDataBuffer[ucPos + tmp + 1];

     

    ulTmp = CharToValue(ucGpsDataBuffer[ucPos++]);

    while (ucGpsDataBuffer[ucPos] != '.')

    {

         ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

    }

    ucPos++;//'.'

    ulTmp = ulTmp * 10 + CharToValue(ucGpsDataBuffer[ucPos++]);

             GpsData.uiSpeed = ulTmp * 10;  //uiSpeed * 1.852 / 100 = km/h

             ulTmp = ulTmp * 1852;

    ulTmp /= 1000;

    GpsData.Speed[0] = ValueToChar(ulTmp / 1000);

             GpsData.Speed[1] = ValueToChar(ulTmp % 1000 / 100);

    GpsData.Speed[2] = ValueToChar(ulTmp % 100 / 10);

    if (IsNumber(GpsData.Speed, 3) == FALSE)

    {

    return;

    }

    GpsData.Speed[3] = '.';

    GpsData.Speed[4] = ValueToChar(ulTmp % 10);

             if (IsNumber(GpsData.Speed + 4, 1) == FALSE)

    {

    return;

    }

    if ((DeviceInfo.CarAccWork == TRUE)

                 || (GpsData.uiSpeed > 500))

    {

         AddSumMeter((ulTmp + 18) / 36);

    }

    else

    {

    for (i = 0; i < 5; i ++)

    {

         GpsData.Speed[i] = '0';

    }

    GpsData.Speed[3] = '.';

    }

    }

            while (ucGpsDataBuffer[ucPos] != ',')

    {

        if (ucPos > 250)

    {

        return;

    }

    ucPos ++;

    }

    ucPos ++; //','

     

        if (ucGpsDataBuffer[ucPos] != ',')

    {

        //有方向数据

        for (i = 0; i < 6; i ++)

        {

            GpsData.Direction[i] = '0';

        }

     

    i = 0;

    while (ucGpsDataBuffer[ucPos] != ',')

    {

        GpsData.Direction[i] = ucGpsDataBuffer[ucPos];

        i ++;

    ucPos ++;

    if (i >= 6)

        {

    break;

        }

    }

            }

            ucPos ++; //','

     

        //获取日期

            GpsData.UTC_Date[0] = ucGpsDataBuffer[ucPos++];

    GpsData.UTC_Date[1] = ucGpsDataBuffer[ucPos++];

    if (IsNumber(GpsData.UTC_Date, 2) == FALSE)

    {

    return;

    }

    GpsData.UTC_Date[2] = '/';

            GpsData.UTC_Date[3] = ucGpsDataBuffer[ucPos++];

    GpsData.UTC_Date[4] = ucGpsDataBuffer[ucPos++];

    if (IsNumber(GpsData.UTC_Date + 3, 2) == FALSE)

    {

    return;

    }

    GpsData.UTC_Date[5] = '/';

    GpsData.UTC_Date[6] = ucGpsDataBuffer[ucPos++];

    GpsData.UTC_Date[7] = ucGpsDataBuffer[ucPos++];

    if (IsNumber(GpsData.UTC_Date + 6, 2) == FALSE)

    {

    return;

    }

     

    //收到一些正确包后把数据状态变新,

        if (GpsData.bDataState == GPS_OLD_DATA)

            {

                GpsData.GpsRcvPacketCnt++;

                if (GpsData.GpsRcvPacketCnt >= 8)

    {

    GpsData.bDataState = GPS_NEW_DATA;

    GpsData.GpsRcvPacketCnt = 0;

    }

            }

     

    //GPS有信号

    GpsData.GpsSignalFlag = TRUE;

    GpsData.SendGpsPacketValid = TRUE;

    SpeedAlertData.NewGpsData = TRUE;

    GeoFenceData.NewGpsData = TRUE;

    GpsData.bTimeZoneCalibrate = FALSE;

     

    //把字符型经维度转换成值型经维度

    GpsData.ulLatitude  = StrToValue(GpsData.Latitude, 2);

    GpsData.ulLatitude  = GpsData.ulLatitude * 1000000UL + StrToValue(GpsData.Latitude + 3, 6);

     

    GpsData.ulLongitude = StrToValue(GpsData.Longitude, 3);

    GpsData.ulLongitude = GpsData.ulLongitude * 1000000UL + StrToValue(GpsData.Longitude + 4, 6);

    }

    }

    展开全文
  • 本文主要分享了footer定位页面底部的实例代码,具有很好的参考价值。下面跟着小编一起来看下吧
  • Selenium中使用xpath的定位分享

    千次阅读 2018-10-16 01:44:23
    Selenium中使用xpath的定位分享1、XPATH是什么2、xpath定位元素的几种方式1)绝对路径:2)相对路径:3)切片引索定位:4)使用节点属性引索定位:5)使用节点谓语引索定位:6)利用xpath逻辑运算符进行定位节点7)...

    1、XPATH是什么

    XPATH是一门在XML文档中查找信息的语言,XPATH可用来在XML文档中对元素和属性进行遍历,主流的浏览器都支持XPATH,因为HTML页面在DOM中表示为XHTML文档。
    XPATH语言是基于XML文档的树结构,并提供了浏览树的能力,通过多样的标准来选择节点。
    Selenium WebDriver支持使用XPATH表达式来定位元素。
    XPATH和CSS选择器最重要的区别是XPATH可以向前和向后查询DOM结构的元素,而CSS选择器只能向前查询,这意味着XPATH可以通过子元素来定位父元素!

    2、xpath定位元素的几种方式

    1)绝对路径:

    从DOM结构树的开始一直写到你需要定位的那个节点
    ps:这样的情况基本只有一种情况才会出现,那就是所有的标签都重复,所有的属性都重复,不然打死我也不用这个办法。

    2)相对路径:

    eg:"//span"
    其中 ‘//’ 标识忽略前面的所有节点,直接定位当前节点(例子的中当前节点为:span

    3)切片引索定位:

    eg:"//span[0]"== or =="//span[-1]"
    相对路径获取的节点往往不仅仅只存在一个,可能返回的是多个节点,使用下标 [0] 进行切片引索可以过滤部分节点或直接定位所需节点;这里为什么用过滤这个词,请自己实践://div[12]//div 试试

    4)使用节点属性引索定位:

    eg:"//*[@name='name']"
    * 标识匹配任何元素节点; @ 标识选取属性; name=‘name’ 表示选取节点属性name的值为name的节点属性;

    5)使用节点谓语引索定位:

    eg://*[text()="5)使用节点谓语引索定位:"]
    text() 是xpath的谓语之一,也是应用场景多的谓语之一,其表示选取节点text字段为: 5)使用节点谓语引索定位: 的节点属性

    6)利用xpath逻辑运算符进行定位节点

    eg1://*div[@name='name' **and** @size='4' **and** @multiple="multiple"]
    and 运算符组合节点属性进行引索匹配,定位节点
    eg2://*div[@type='displayed' **or** @type='hidden']
    or 运算符组合刷选多变节点属性进行匹配引索
    (例子1 中利用三个节点属性并存的条件进行精确定位节点,在xpath运算符中,会以Hash计算方式分成三次进行定位节点,可以说其实是非常快的;例子2 中通常的应用场景是对某一按钮的定位,通过选中和非选中两种状态定位同一节点元素,这样可以省去一些事)

    7)运用xpath轴的节点集进行反向定位

    eg:.//*[@class="define"]//ancestor::div
    这个就是css做不到的地方;反向定位:定位 class属性value为define的节点他的所有长辈节点通过: ancestor:: 控制;并筛选出节点标签为div的所有符合条件的节点。
    这里拓展一下xpath轴“运算符”:

    轴名称对应情况
    ancestor选取当前节点的所有先辈(父、祖父等)
    ancestor-or-self选取当前节点的所有先辈(父、祖父等)以及当前节点本身
    attribute选取当前节点的所有属性
    child选取当前节点的所有子元素
    descendant选取当前节点的所有后代元素(子、孙等)
    descendant-or-self选取当前节点的所有后代元素(子、孙等)以及当前节点本身
    following选取文档中当前节点的结束标签之后的所有节点
    namespace选取当前节点的所有命名空间节点
    parent选取当前节点的父节点
    preceding选取文档中当前节点的开始标签之前的所有节点
    preceding-sibling选取当前节点之前的所有同级节点
    self选取当前节点

    巧用这些xpath语句任何一个节点都是可以直接定位的。
    有人说xpath定位慢,不如id,不如name…那是因为你只会给绝对路径而已。
    前端哪里有那么多时间去给你添加id,添加name,靠人不如靠自己。

    3、xpath使用思路

    1)节点元素无id,无唯一name;请使用xpath;

    eg:

    <link rel="preload" href="https://addasdasdator.js?domain=www.wqwrqqe1231l.com.cn" as="script">
    

    //link[@rel="preload" and @as="script"]
    请注意这里不要使用 //* 开头;请使用 .////
    * 是匹配任何节点元素的属性/谓语的意思;这么说吧,其实 //* 是 ==//[@*]==的一种简写。

    2)节点元素需要集合或包含多种可能性,请使用xpath;

    eg:需求–请定位一次性定位含字段的节点元素

     <div class="show-pollution">
     	<span class="show-airParm polution-level-0">
     		<em class="show-polution-name"></em>
     		<em class="show-polution-num">28</em>
     	</span><span class="show-vertical">|</span>
     </div>
     <div class="unknown-city">
     	<span class="unknown-icon"></span> 
        	<span class="unknown-text">查看天气信息,</span>
         		<span class="unknown-setting">设置城市</span> 
         </div> </div>
    

    //*[@class="show-pollution" or class="unknown-city"]//descendant::text()

    3)节点元素是表格内部元素,相信我,请使用xpath;

    eg:

    <table class="dataintable">
    	<tbody>
    		<tr>
    			<th style="width:25%;">表达式</th>
    			<th>描述</th>
    		</tr>
    		<tr>
    			<td>nodename</td>
    			<td>选取此节点的所有子节点。</td>
    		</tr>
    		<tr>
    			<td>/</td>
    			<td>从根节点选取。</td>
    		</tr>
    		<tr>
    			<td>//</td>
    			<td>从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。</td>
    		</tr>
    		<tr>
    			<td>.</td>
    			<td>选取当前节点。</td>
    		</tr>
    		<tr>
    			<td>..</td>
    			<td>选取当前节点的父节点。</td>
    		</tr>
    		<tr>
    			<td>@</td>
    			<td>选取属性。</td>
    		</tr>
    	</tbody>
    </table>
    

    当节点元素谓语表单结构之内,使用xpath可以一次性定位所有节点,通过语句设置筛选条件达到获取表格中的任意节点元素,方便后期维护;此处有遇到表单结构过于大的那种可以考虑使用迭代器和生成器结合使用,从而减小内存消耗。

    4)节点元素是非常规属性,请使用xpath;

    eg:定位下面的<span>标签所代表的节点元素

    <div>
    	<h2>定位下面的"span"标签所代表的节点元素</h2>
    	<p>定位下面的"span"标签所代表的节点元素</p>
    	<span>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;&lt;bookstore&gt;&lt;book&gt;&lt;titlelang="eng"&gt;HarryPotter&lt;/title&gt;&lt;price&gt;29.99&lt;/price&gt;&lt;/book&gt;&lt;book&gt;&lt;titlelang="eng"&gt;LearningXML&lt;/title&gt;&lt;price&gt;39.95&lt;/price&gt;&lt;/book&gt;&lt;/bookstore&gt;
    	</span>
    </div>
    
    //*[text()="定位下面的"span"标签所代表的节点元素"]//parent::*/pre
    

    个人觉得其实css和xpath精通一种就够了,为啥呢,因为原理都是利用节点的属性和层级关系在构建定位节点元素的表达式;至于到底哪个好,看你个人了。

    展开全文
  • 产品战略定位与实操干货分享.docx
  • 包含安卓自带的分享定位,/** 旋转动画 */ String tag = ""; RotationHelper rotateHelper; public View decorview; /** 接收定位界面城市数据 */ private static String citylocation; private Scoll scoll...
  • 分享几个ip定位api

    万次阅读 2018-09-04 16:44:37
    在做定位的朋友,如果只是单纯的想获取地址而又不想集成高德等第三方sdk,可以试试以下地址: https://ip.seeip.org/geoip https://ip.nf/me.json http://ip-api.com/json 这几个地址是世界通用,不管是哪个ip都...

    在做定位的朋友,如果只是单纯的想获取地址而又不想集成高德等第三方sdk,可以试试以下地址:

    https://ip.seeip.org/geoip
    https://ip.nf/me.json
    http://ip-api.com/json

    这几个地址是世界通用,不管是哪个ip都可以进行访问

    如果还想进一步进行详细的地址解析,可以试试这个sdk
    https://github.com/maxmind/GeoIP2-java

    展开全文
  • 自己用心二次制作的百度地图API开发定位小图标,内含多种样式与不同颜色的(marker)标注,很实用哦,百度地图二次开发必备,分享给你们!
  • 免费基站定位api代码分享

    千次阅读 2015-09-30 14:16:20
    免费基站定位api支持基站定位,通过移动联通基站的CID和LAC进行基站位置查询。 接口名称:免费基站定位api 接口平台:聚合数据 接口地址:http://v.juhe.cn/cell/get 支持格式:JSON/XML 请求方式:GET/POST ...

    免费基站定位api支持基站定位,通过移动联通基站的CIDLAC进行基站位置查询

    接口名称:免费基站定位api

    接口平台:聚合数据

    接口地址:http://v.juhe.cn/cell/get

    支持格式:JSON/XML

    请求方式:GET/POST

    请求示例:http://v.juhe.cn/cell/get?mnc=0&cell=28655&lac=17695&key=您申请的APPKEY

    免费基站定位api JSON返回示例:

    {
    "resultcode":"200",
    "reason":"Return Successd!",
    "result":{
    "data":[
            {
                "MCC":"460",
                "MNC":"1",
                "LNG":"120.721423",
                "LAT":"31.29854",
                "O_LNG":"120.72577772352",
                "O_LAT":"31.296529947917",
                "PRECISION":"1101",
                "ADDRESS":"江苏省苏州市吴中区金鸡湖大道368号"
            }
        ]
        }
    }

    免费基站定位api XML返回示例:


    <root>
    <resultcode>200</resultcode>
    <reason>Return Successd!</reason>
    <result>
    <data>
    <item>
    <MCC>460</MCC>
    <MNC>1</MNC>
    <LNG>120.721423</LNG>
    <LAT>31.29854</LAT>
    <O_LNG>120.72577772352</O_LNG>
    <O_LAT>31.296529947917</O_LAT>
    <PRECISION>1101</PRECISION>
    <ADDRESS>江苏省苏州市吴中区金鸡湖大道368号</ADDRESS>
    </item>
    </data>
    </result>
    </root>


    展开全文
  • ip定位api,高精度定位接口分享

    千次阅读 2019-06-21 20:00:46
    接口地址:https://98k.org/api.php 返回格式:JSON 请求方式:GET 请求示例: https://98k.org/api.php?key=[您申请的APPKEY]&...请求参数: 名称 类型 必填 说明 key String 是 应用APPKEY ... ...{ "stat...
  • openGPS.cn - 基于ip的定位技术分享,高精度IP定位

    万次阅读 热门讨论 2016-10-03 12:21:52
    普通IP定位:https://www.opengps.cn/Data/IP/IPSearch.aspx 高精度IP定位-1:https://www.opengps.cn/Data/IP/IPHighAccuracy.aspx 【请允许我插播广告】 openGPS.cn运行在阿里云的云服务器ECS上,欢迎需要...
  • Android百度定位(模仿QQ和微信位置分享)

    千次下载 热门讨论 2015-06-07 17:29:40
    根据百度地图的定位功能,模仿QQ和微信的位置分享功能做出的一个demo,其中包含定位,POI搜索,反地理位置编码等
  • 次软件是关于android GPS定位的代码,希望对大家能有所帮助,谢谢下载
  • 本文主要分享了将鼠标焦点定位到文本框最后的实例代码。具有很好的参考价值,下面跟着小编一起来看下吧
  • 主要介绍了IE6中的position:fixed定位兼容性写法分享,需要的朋友可以参考下
  • 中原_深圳布吉花语岸项目形象定位分享_55PPT.pptx
  • 界面复杂,找寻id控件费劲,分享一个快速定位控件id的方法 首先定位目录下 android->sdk/tool/bin/uiautomatorviewer 等到出现屏幕截图后,鼠标定位到相应控件,点击后会出现 此id便是控件xml命名的id名称! ....
  • 电子商务专业定位与建设规划 精品文档 精品文档 收集于网络如有侵权请联系管理员删除 收集于网络如有侵权请联系管理员删除 精品文档 收集于网络如有侵权请联系管理员删除 电子商务专业定位与建设规划 一电子商务专业...
  • 基于经验分享免疫算法的电力系统配电网区段定位方法.pdf
  • 免费资源分享(六) Unity3D 雷达实时定位插件-附件资源
  • 分享一个可以自定义搜索定位的地图 前面的申请ak密钥步骤都是一致的,这里就不重复描述了,可以通过下面的链接看具体步骤然后复制本篇下面的代码 https://blog.csdn.net/weixin_46713508/article/details/116902520 ...
  • 5G+北斗精准定位赋能V2X安全辅助驾驶服务
  • 个别客供拼板工艺边定位孔很大,基本上同工艺边宽差不多大,容易断工艺边,特别是加在悬空位。 如下图,拼板工艺边宽4.5mm孔4mm 又是悬空的,容易导致断工艺边;如孔一定要那么大,那么建议工艺边改宽8mm以上才能...
  • 商业定位——商业整体定位
  • 行业资料-电子功用-定位信息分享的方法、装置、电子设备及存储介质.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 193,190
精华内容 77,276
关键字:

如何分享定位