最近因为Gradle bug的原因,把之前写的代码全部删掉了,心情极其烦闷0.0,也不知道为什么写了这么多天的代码,突然今天早上一打开,几百行bug,人都麻了。本来打算换项目了,可是还是放不下,想着都已经重新来了,还是写个博客记录一下。

这个天气App开发是基于博客:初学者开发的基础上,对其博客进行了最新的更新,本来是个超级小白,写个博客只是记录一下过程,具体内容大家课可以借鉴学习一下。话不多说开始吧!

首先为了实现定位,我们需要一个可以实现定位的Api这里原作者选择的是百度定位API。这里实现也是用百度定位的API。

获取密匙SH的一系列过程,我就不再赘述,很多博客里面都有,大家可以看看原作者的。百度API

这里选择下载Android 定位 SDK V9.3.6,选择基础定位

Android 公共查询天气接口 安卓天气app开发_android studio

然后按照这样的方式下载下来

Android 公共查询天气接口 安卓天气app开发_android_02

把这个包解压到你想要的位置,我这里自己在地盘创建了一个baiduAPK的包,专门来存放,百度APK。 

 

Android 公共查询天气接口 安卓天气app开发_android studio_03

 解压下来基本上就是这个样子啦,这样就成功一半了。然后就要开始着手创建自己的项目了。

打开你的Android Studio,然后选择创建一个新的项目。

Android 公共查询天气接口 安卓天气app开发_android_04

 这里要选择Empty Activity

为自己项目去一个好的名字,选择你创建的位置,将你的项目放进去。

Android 公共查询天气接口 安卓天气app开发_android studio_05

创建完你的项目之后,接下来就要把你下载好已经解压的包放到项目de

Android 公共查询天气接口 安卓天气app开发_Android_06

 如果你和我一样不知道在哪儿,就打开你的项目文件夹

Android 公共查询天气接口 安卓天气app开发_android studio_07

 找到APP下的libs,然后把你解压好的包导入进去。

你搞好了嘛,下面我们来配置build.gradle文件,这里我们配置的使(module)的gradle文件,也就是这个,注意别配置到上面那个去了。

Android 公共查询天气接口 安卓天气app开发_Android 公共查询天气接口_08

将这段代码粘贴到你的gradle文件的Android闭包里面。

 

sourceSets{
        main{
                jniLibs.srcDir 'libs'
                jni.srcDirs = []    //disable automatic ndk-build
        }
}

 然后添加一段依赖,去解析你刚刚下载的包。

compile fileTree(dir:  'libs' , include: ['*.jar'])

然后点击右上角的更新一下你的gradle,完成以上的操作之后,你的包就可以像我一样展开了。

Android 公共查询天气接口 安卓天气app开发_android_09

 

接下来,就在AndroidManifest文件里面动刀子了,还记得我们之前申请了一个AK吗,它现在派上用场了。

<meta-data
      android:name="com.baidu.lbsapi.API_KEY"
      android:value="AK" >
  </meta-data>

将你的AK覆盖掉上面value里面的AK就可以啦,因为Android定位SDK自v4.0版本起,需要进行AK鉴权,所以你需要去申请一个AK,如果不知道这么申请,就去百度一下叭,很简单的!

然后给你的App添加定位权限。

<service 
android:name="com.baidu.location.f" 
android:enabled="true" 
android:process=":remote"> </service>

注意这些代码都是加在Application里面的和Activity都是同级的别加错了。

最后你还需要给你的模拟器添加各种各样的权限,我就不一一赘述了,你们自己看叭!

<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问系统接口提供的卫星定位信息-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

这个这个要加在Application外面,和Application是平级的。

接下来就完成基本的配置了,我的文章都是基于我上面那个博客做出更新的,没有说的地方都建议去看原作者哟。