有关在模拟器中模拟GPS遇到的问题的解决与我的一些反思,与拓展

    鼓捣了一下午,刹那间,把我遇到的所有的困难和困惑一下子化为乌有,真的有一种“山重水复疑无路,柳暗花明又一村”的感觉,心情轻松了很多。每次问题的解决,我都会很释怀,都会把我遇到的问题时候解决的办法给写出来,一来印象深刻,二来便于以后翻译,三来,如果有人也曾遇到过同样的问题,给他人提供帮助,何乐而不为呢?长话短说,下面我来说说我在做的过程中遇到的问题以及解决办法和注意事项:

    1.Activity(我们自己写的一个Activity),不管是做google地图应用也好,还是模拟GPS也好,都要用到MapView。所以我们写的Activity都要继承MapActivity这个类,因为MapView需要由MapActivity这个类来管理。一定要切记,否则你继承普通的Acitivity,它会报异常,出不来效果;

    2.Map API Key 如果你做过google地图应用的android程序,你对这个应该就会很熟悉了,上一篇博客上我已经说的很清楚了,所以在这里就不再赘述。这个很重要,一定要在配置文件里修改成你申请的API Key的值,否则地图不会显示,只会显示一些灰格子,即使你的程序没有错误。

    3.添加一些用户库和用户权限,这个和android系列的地图应用程序的设置一样,在AndroidManifest.xml修改后代码如下:(我已经标注出添加的几行代码)

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="com.test.activity"

      android:versionCode="1"

      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

     <activity android:name=".GPSDemo"

                  android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <uses-library android:name="com.google.android.maps"/>

  </application>

   <uses-permission android:name="android.permission.INTERNET"/>

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

   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-sdk android:minSdkVersion="7" />

 

</manifest> 

   4.由于我们在模拟器上测试,所以需要人为设置一个坐标。可以通过两种方法来设置一个模拟的坐标值。

   1)通过DDMS

我们可以在Eclipse的ADT插件中使用这种方法,只要启动Eclipse,选择Windows->Show View->,打开“Emulator Control”界面即可看到一个窗口,我们可以手动或者通过KML和GPX文件来设置一个坐标。我自己尝试了手动修改坐标值和通过KML文件来设置坐标值,都是没有问题的。手动修改很容易,对于KML文件,你可以从网上查找这方面的资料,把配置信息写到一个.kml的文件里然,后直接Load进去了就可以了。

   2)另一种方法就是使用Geo命令

点击开始——>运行——>telnet localhost 5554(远程登录到本机的5554端口),在弹出的命令窗口,输入类似如下的命令:

geo fix -104.06576199999999 30.659259(纬度,经度)

它会输出OK

这样同样可以实现,而且我自己也尝试了,同样可以出来效果

   5.以上的这两个方法都是在你的程序写好的情况下,进行测试的时候,可以使用的方法,同时,你会发现,测试的时候,它会在模拟器的屏幕上方多了一个标志,表示模拟了GPS 权限

   6.既然可以模拟GPS,那么也就可以使用Android模拟器模拟打电话发短信,GPhone的模拟器有个特有的号码:15555218135

我们可以试着操作一下模拟打电话:

1.连接: telnet localhost 5554 

2.输入命令:gsm call 15555218135(10086也可以)

3.是不是模拟器上显示来电了?接听/挂断和实体手机一样,可以试试看。

当然,也可以模拟发短信:

1.连接: telnet localhost 5554 

2.输入命令:sms send 10086

3.就会在模拟器端看到发的短信

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值