现在的App基本都不开城市定位,本文中介绍一款模拟美团的城市定位框架,可以根据输入城市名字、百度地图定位获取城市名字、通过选择城市按钮等获取对应的城市以及该城市的首字母,然后可以根据获取的城市,实现你需要的功能。
如果需要框架,请点击链接:http://pan.baidu.com/s/1hsPVG8G 密码:j99s
本框架是通过第三方大神的app改造的,感谢大神提供源码:http://dwtedx.com/itshare_451.html
1.效果图
代码实现
2.清单文件添加对应的权限等信息
<!--
需要将下列权限放到你使用的清单文件中
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<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_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />-->
<!--
需要将下列代码放到你清单文件的application中
注册百度服务
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote"></service>
value为baidu地图的密匙,每个包只能对应一个密钥,所有如果是你自己的应用,需要去百度地图开发平台注册一个
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="lnP2TfniXosI3BkAUFAquNo9Y3CEYOcl" /> -->
3.创建一个类继承LocationActivity
public class MainLocationActivity extends LocationActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
//选择完城市后会自动调用这个方法,主要用于启动其他Activity并进行初始化
public void startActivity(String city) {
//根据城市获取首字母大写
String firYin = PingYinUtil.converterToFirstSpell(city)
.substring(0, 1).toUpperCase();
Log.e("msgs", "startActivity:------------- " +city+ firYin);
}
我不生产代码,代码源于ta人,亦应受益于ta人,,里面的代码结构有点小乱,没有及时修改,如果各位大神有更好的建议,我愿受教