解决方案 »

  1.   

    百度地图 有 官方Demo 的建议你下载看看
      

  2.   

    是配置<service>那个吗?我配置了也时不能成功启动啊
      

  3.   

    locationClient = new LocationClient(getApplicationContext());
    把你的this改为getApplicationContext()就行了。
      

  4.   

    把this改为getApplicationContext()了,可是还是不行哎。。谁来帮忙啊。
      

  5.   


    代码是没有问题的,我的问题出在没有在配置文件中配置service这个组件
      

  6.   

    谢谢了,用这种方法果然可以。但是,我还是有点不懂:工程(1)中是我做测试用的,里面只有一个MainActivity的时候,我用this,成功获取到了位置信息,工程(2)中有多个Activity,获取位置信息的Activity不是MainActivity。这时再用this就无法获取到了,而改成getApplicationContext()就成功的获取到了位置信息…这是什么原因呢?希望您能解答一下…再次致谢!
      

  7.   

    谢谢了,用这种方法果然可以。但是,我还是有点不懂:工程(1)中是我做测试用的,里面只有一个MainActivity的时候,我用this,成功获取到了位置信息,工程(2)中有多个Activity,获取位置信息的Activity不是MainActivity。这时再用this就无法获取到了,而改成getApplicationContext()就成功的获取到了位置信息…这是什么原因呢?希望您能解答一下…再次致谢!
    遭遇与层主一致,调了一两天了擦...
    搞清楚问题了么? 我看了下getApplicationContext()和this的区别,关于生命周期的,但是没弄明白
      

  8.   

    谢谢了,用这种方法果然可以。但是,我还是有点不懂:工程(1)中是我做测试用的,里面只有一个MainActivity的时候,我用this,成功获取到了位置信息,工程(2)中有多个Activity,获取位置信息的Activity不是MainActivity。这时再用this就无法获取到了,而改成getApplicationContext()就成功的获取到了位置信息…这是什么原因呢?希望您能解答一下…再次致谢!
    百度类参考里面写的:
        public LocationClient ( Context ) //须在主线程中声明
    是不是跟这个有关系,this不在主线程?
      

  9.   

    应该是这样的,只有一个Activity时候,其this是在主线程中,当我做的有多个Activity的时候,入口Activity是另外的一个,也就是说,此时再用this,就不是在主线程中了…也不知道是不是这样子的,我暂时就先这样理解了,如果您有什么好的解释,麻烦您告诉我一下…谢谢!
      

  10.   

    谢谢了,用这种方法果然可以。但是,我还是有点不懂:工程(1)中是我做测试用的,里面只有一个MainActivity的时候,我用this,成功获取到了位置信息,工程(2)中有多个Activity,获取位置信息的Activity不是MainActivity。这时再用this就无法获取到了,而改成getApplicationContext()就成功的获取到了位置信息…这是什么原因呢?希望您能解答一下…再次致谢!
    百度类参考里面写的:
        public LocationClient ( Context ) //须在主线程中声明
    是不是跟这个有关系,this不在主线程?   应该是这样的,只有一个Activity时候,其this是在主线程中,当我做的有多个Activity的时候,入口Activity是另外的一个,也就是说,此时再用this,就不是在主线程中了…也不知道是不是这样子的,我暂时就先这样理解了,如果您有什么好的解释,麻烦您告诉我一下…谢谢!
      

  11.   

    百度的官方示例你看了么,定位图层那个例子里面用的就是this,而不是getapplicationcontext
      

  12.   

    <service 
                android:name="com.baidu.location.f"
                android:enabled="true"
                android:process=":remote"
                android:exported="false">
                <intent-filter >
                    <action android:name="com.baidu.location.service"
                        android:exported="false"/>
                </intent-filter>
            </service>
    <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-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>java文件加入option.setServiceName("com.baidu.location.service");
    就解决了无法启动service的问题。包里有内置service
      

  13.   

    option.setOpenGps(true);//打开gps    加这句试试
      

  14.   

     初始化LocationClient类此处需要注意:LocationClient类必须在主线程中声明。需要Context类型的参数。Context需要时全进程有效的context,推荐用getApplicationConext获取全进程有效的context
    官方文档说的很清楚了;