利用百度定位,获取经纬度,LocationClient无法启动

weixin_37655384 2017-03-29 04:55:05

主文档:
public class MainActivity extends AppCompatActivity {
public LocationClient mLocationClient;
private TextView positionText;
public static final String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLocationClient=new LocationClient(getApplicationContext());
mLocationClient.registerLocationListener(new MyLocationListener());
positionText= (TextView) findViewById(R.id.textView);
List<String> permissionList=new ArrayList<>();
if(ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
permissionList.add(android.Manifest.permission.ACCESS_FINE_LOCATION);
}
if(ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_PHONE_STATE)!=PackageManager.PERMISSION_GRANTED){
permissionList.add(android.Manifest.permission.READ_PHONE_STATE);
}
if(ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED){
permissionList.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if(!permissionList.isEmpty()){
String [] permissions=permissionList.toArray(new String[permissionList.size()]);
ActivityCompat.requestPermissions(MainActivity.this,permissions,1);
}else {
requestLocation();
}
}


private void requestLocation(){
intiLocation();
mLocationClient.start();
if (mLocationClient != null && mLocationClient.isStarted()) {
Log.i("start", "location服务开始");
mLocationClient.requestLocation();
} else {
Log.i("LocSDK_2.0_Demo1", "locClient is null or not started");
}
}
private void intiLocation(){
LocationClientOption option=new LocationClientOption();
option.setScanSpan(5000);
mLocationClient.setLocOption(option);
}
protected void onDestroy(){
super.onDestroy();
mLocationClient.stop();
}
public void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults){
switch (requestCode){
case 1:
if(grantResults.length>0){
for(int resutlt:grantResults){
if(resutlt!=PackageManager.PERMISSION_GRANTED){
Toast.makeText(MainActivity.this,"必须同意权限才可以使用程序",Toast.LENGTH_SHORT).show();
finish();
return;
}
}
requestLocation();
}else {
Toast.makeText(MainActivity.this,"未知错误",Toast.LENGTH_SHORT).show();
finish();
}
break;
default:
}
}
public class MyLocationListener implements BDLocationListener{

@Override
public void onReceiveLocation(BDLocation bdLocation) {
StringBuilder currentPossiton =new StringBuilder();
currentPossiton.append("维度:").append(bdLocation.getLatitude()).append("\n");
currentPossiton.append("经线:").append(bdLocation.getLongitude()).append("\n");
currentPossiton.append("定位方式:");
if(bdLocation.getLocType()==BDLocation.TypeGpsLocation){
currentPossiton.append("GPS");
}else if(bdLocation.getLocType()==BDLocation.TypeNetWorkLocation){
currentPossiton.append("网络");
}
positionText.setText(currentPossiton);
}
}
}


AndroidManifest内容:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ken.getsevice">

<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<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.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="eWGHMhFVCzFwbKXTtAR4UOFpTgjfViMl" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" > </service>
</application>

</manifest>
...全文
556 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧