当前位置: 首页 > news >正文

临湘做网站百度seo网站优化服务

临湘做网站,百度seo网站优化服务,做网站用什么字体字号,制作网站公司多少钱20212313 2023-2024-2 《移动平台开发与实践》第5次作业 1.实验内容 设计并开发一个地图应用系统。 该实验需提前申请百度API Key,调用接口实现百度地图的定位功能、地图添加覆盖物和显示文本信息。 2.实验过程 2.1 获取SHA1 (1)打开控制台…

20212313 2023-2024-2 《移动平台开发与实践》第5次作业

1.实验内容

设计并开发一个地图应用系统。
该实验需提前申请百度API Key,调用接口实现百度地图的定位功能、地图添加覆盖物和显示文本信息。

2.实验过程

2.1 获取SHA1

(1)打开控制台,输入cd .android
然后输入 keytool -list -v -keystore debug.keystore
显示keytool错误
在这里插入图片描述
(2)经过重新构建密钥库(具体内容在后续的问题分析中展示)
输入 keytool -list -v -keystore debug.keystore 获取SHA1
在这里插入图片描述

2.2 创建AK

(1)进入百度地图开发平台:百度地图开发平台,完成个人注册后(比学生认证快多了),进入控制台,点击左栏“应用管理”→“我的应用”,进行创建应用。
(2)选择Android SDK ,然后输入上文获取的SHA1,包名为com.example.baidu
在这里插入图片描述

2.3 下载并导入SDK

(1)首先下载SDK,下载jar包即可。下载链接
在这里插入图片描述
(2)将下载好的jar包等文件复制到Android项目中App目录下的libs文件夹,并右击jar包,点击“Add As Libraby”
在这里插入图片描述

(3)在src/main/目录下新建jniLibs目录,将so文件放入
(4)打开build.gradle.kts(:app)
在其中的android{}中添加如下代码:

 sourceSets {getByName("main") {jniLibs.srcDirs("libs")}

在这里插入图片描述

!!要打开红色方框的文件,而不是黄色方框的文件(虽然名字一样)
在这里插入图片描述

2.4配置相应文件

(1)打开AndroidManifest.xml,写入以下内容,其中的value值是获取的AK值
在这里插入图片描述

<service android:name="com.baidu.location.f"android:enabled="true"android:process=":remote"/><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="hrhDXaLYldZCDGq9ezRPLArKiM9hN2mH"/>

在这里插入图片描述

(2)在AndroidManifest.xml中添加所需要的权限

<!--百度定位所需要权限,前面是LOCATE权限组的2个危险权限--><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.INTERNET"/>

在这里插入图片描述

2.5 实现地图定位的核心代码

(1)activity_main.xml:
在LinearLayout的框架下设置显示经纬度的按钮。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><!--百度地图控件--><com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true" /><!--位置文本布局的背景色代码的前2位代码为透明度--><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:background="#e0000000"android:orientation="vertical" ><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="12dp"android:layout_marginTop="20dp"android:orientation="horizontal" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="纬度:"android:textColor="#ffffff"android:textSize="15dp" /><TextViewandroid:id="@+id/tv_Lat"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""android:textColor="#ffffff"android:textSize="15dp" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="12dp"android:layout_marginTop="10dp"android:orientation="horizontal" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="经度:"android:textColor="#ffffff"android:textSize="15dp" /><TextViewandroid:id="@+id/tv_Lon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""android:textColor="#ffffff"android:textSize="15dp" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="10dp"android:layout_marginLeft="12dp"android:layout_marginTop="10dp"android:orientation="horizontal" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="地址:"android:textColor="#ffffff"android:textSize="15dp" /><TextViewandroid:id="@+id/tv_Add"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""android:textColor="#ffffff"android:textSize="15dp" /></LinearLayout></LinearLayout></FrameLayout>

(2)Mainactivity.kt:

package com.example.baiduimport android.Manifest
import android.app.Activity
import android.content.pm.PackageManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.CheckBox
import android.widget.RadioButton
import android.widget.RadioGroup
import android.widget.TextView
import android.widget.Toast
import androidx.core.app.ActivityCompat
import com.baidu.location.BDLocation
import com.baidu.location.BDLocationListener
import com.baidu.location.LocationClient
import com.baidu.location.LocationClientOption
import com.baidu.mapapi.CoordType
import com.baidu.mapapi.SDKInitializer
import com.baidu.mapapi.common.BaiduMapSDKException
import com.baidu.mapapi.map.BaiduMap
import com.baidu.mapapi.map.MapStatusUpdateFactory
import com.baidu.mapapi.map.MapView
import com.baidu.mapapi.model.LatLngLocationClient mLocationClient;  //定位客户端
MapView mapView;  //Android Widget地图控件
BaiduMap baiduMap;
boolean isFirstLocate = true;TextView tv_Lat;  //纬度
TextView tv_Lon;  //经度
TextView tv_Add;  //地址@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//如果没有定位权限,动态请求用户允许使用该权限if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);}else {requestLocation();}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {switch (requestCode) {case 1:if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {Toast.makeText(this, "没有定位权限!", Toast.LENGTH_LONG).show();finish();} else {requestLocation();}}
}
private void requestLocation() {initLocation();mLocationClient.start();
}
private void initLocation() {  //初始化mLocationClient = new LocationClient(getApplicationContext());mLocationClient.registerLocationListener(new MyLocationListener());SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);mapView = findViewById(R.id.bmapView);baiduMap = mapView.getMap();tv_Lat = findViewById(R.id.tv_Lat);tv_Lon = findViewById(R.id.tv_Lon);tv_Add = findViewById(R.id.tv_Add);LocationClientOption option = new LocationClientOption();//设置扫描时间间隔option.setScanSpan(1000);//设置定位模式,三选一option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);/*option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);*///设置需要地址信息option.setIsNeedAddress(true);//保存定位参数mLocationClient.setLocOption(option);
}
//内部类,百度位置监听器
private class MyLocationListener  implements BDLocationListener {@Overridepublic void onReceiveLocation(BDLocation bdLocation) {tv_Lat.setText(bdLocation.getLatitude()+"");tv_Lon.setText(bdLocation.getLongitude()+"");tv_Add.setText(bdLocation.getAddrStr());if(bdLocation.getLocType()==BDLocation.TypeGpsLocation || bdLocation.getLocType()==BDLocation.TypeNetWorkLocation){navigateTo(bdLocation);}}
}
private void navigateTo(BDLocation bdLocation) {if(isFirstLocate){LatLng ll = new LatLng(bdLocation.getLatitude(),bdLocation.getLongitude());MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);baiduMap.animateMapStatus(update);isFirstLocate = false;}
}
@Override
protected void onResume() {super.onResume();mapView.onResume();
}
@Override
protected void onPause() {super.onPause();mapView=(MapView)findViewById(R.id.bmapView);mapView.onResume();
}
@Override
protected void onDestroy() {super.onDestroy();mLocationClient.stop();mapView.onDestroy();
}

2.6 运行成果

我使用了真机,视频1为真机下载app

1


视频2为软件运行效果

2

3.学习中遇到的问题及解决

  • 问题1:显示keytool错误,无法获取SHA1
  • 问题1解决方案:

①在终端工具输入或窗口运行窗口输入(窗口键+ R输入CMD):

 keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000

②填写注册信息,注意要求设置密码,密码请记录下来以便后续获取SHA1使用(注册内容可以随意填写)
③验证debug.keystore是否生成

keytool -list -v -keystore debug.keystore

④再次输入keytool -list -v -keystore debug.keystore即可

  • 问题2:在Mainactivity文件中,导入的baidu包报错
  • 问题2解决方案:要在在app文件夹下的build.gradle文件中添加代码后,上方会出现一个蓝条,选择Sync now。(选择另外一个的话就会报错)
    在这里插入图片描述
  • 问题3:打开应用后没有定位显示,只能显示一个地图
  • 问题3:解决方案:在AK申请的过程中,SHA1输入错误。

4.学习感悟、思考等)

本次实验过程并不难,主要就是获取自己主机的SHA1密钥然后在百度地图开放平台中申请AK,最后将jar包导入项目,最后根据老师给的代码进行实现地图定位。过程中遇到的困难几乎在csdn上都可以找得到。但是最后的运行闪退问题困扰我超级久,不知道是哪里出现了问题。无论怎么修改代码都会有问题。最后我根据同学的建议,将虚拟机修改成了真机,就发现不闪退了,这时候我又发现总是出现不了定位,只能打开地图。让我非常沮丧,经过重新的实验,最终我发现是我的SHA1密钥输入错误,导致最后的无法成功申请到百度地图的功能权限。真的是粗心浪费了我大量的时间与精力啊。

参考资料

  • Android Studio3.0对于百度地图SDK的开发(前置准备)
  • android中关于keytool 错误:java.lang.Exception:密钥库文件不存在: 解决步骤
http://www.jinmujx.cn/news/77783.html

相关文章:

  • 上海做网站 公司 哪家好信息流优化师简历
  • 怎么做公司网站推广今日热点新闻事件及评论
  • 郑州小程序设计外包网络优化工程师是做什么的
  • 如何策划一个网站免费的网络推广有哪些
  • 做h游戏视频网站有哪些百度竞价推广
  • 网站设计与开发专业优化关键词快速排名
  • 商业网站在规划与设计时应着重考虑哪些因素口碑营销什么意思
  • 做网站被攻击谁的责任百度推广好做吗
  • 成都市建网站公司国外免费推广网站有哪些
  • 鄂州建设网站seo是什么级别
  • 南京小程序设计公司seo网络营销的技术
  • 做招聘长图用什么网站深圳seo推广培训
  • 怎么做能打不开漫画网站360优化大师安卓下载
  • 阜阳恒亮做网站多少钱网上推广用什么平台推广最好
  • 北京婚恋网站哪家最好新十条优化措施
  • 宝安网站建设深圳信科最新国际新闻热点事件
  • 教做甜品的网站引擎seo优
  • 成都建设委员会网站餐饮营销策划方案
  • wordpress删除修订郑州专业seo首选
  • 横屏滚动网站广州百度关键词搜索
  • 网站建设价格标准信息亚洲卫星电视网参数表
  • 动态wordpress动态主题郴州网站seo外包
  • 网站模板生成seo和竞价排名的区别
  • wordpress主页设置错误优化器
  • 那个网站教做馒头百度推广网站
  • 企业网站开发周期合肥网站推广优化
  • dw 怎么做钓鱼网站百度网站权重查询
  • 铁岭做网站公司信息优化大师app下载
  • 网站版面铜陵seo
  • 乐清建站公司百度贴吧入口