【unity接入SDK案例】从0到1 如何接入百度地图SDK到unity中【二】


👨‍💻个人主页@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏Unity基础实战

⭐🅰️⭐



文章目录


⭐前言⭐


🎶(1) 百度地图Android SDK下载


下载入口


🎶(2) 下载Android Studio


下载入口

android studio版本是:2021.2.1.16,

  • 打开后 点击SDK Manager 我们需要更改一下SDK的安装路径

  • 选择自己新建的文件夹,更改路径

  • SDK位置已更新

  • 完成


🎶(3) Android Studio工程配置


  • Step 1 :创建一个Empty 项目:
  • 第一次创建项目会比较慢,等待加载完成即可

等待第一次加载完毕,而后部署签证

为什么要进行生成签名捆绑包

在Android开发中,部署签名和密钥库是用于对应用进行数字签名和加密的一种机制。

部署签名是通过使用开发者的私钥对应用进行签名的过程。签名后的应用可以用于发布到Google Play商店或其他渠道进行分发。签名后的应用可以确保应用的完整性和来源的真实性,防止被篡改或恶意修改。

密钥库是存储和管理密钥的文件。在Android开发中,通常使用Java密钥库(JKS)格式的文件来存储密钥。密钥库可以包含多个密钥对,每个密钥对都有一个相关的私钥和公钥。在部署签名过程中,开发者需要使用密钥库中的私钥对应用进行签名。

部署签名和密钥库在Android开发中扮演着重要的角色,不仅可以确保应用的完整性和来源的真实性,还可以保护应用的安全性。


  • 选择build - Generate Signed Bundle or APK(生成签名捆绑包或APK)
  • 此时我选择新建一个key Store
  • 选择 release版本,后点击finish

🎶(4)获取AK和SHA1


什么是AK?

在百度地图中,AK 是 Access Key 的缩写,也被称为 API Key。每个使用百度地图 API 的开发者都需要申请一个 AK,用于身份验证和授权。AK 是一个字符串,类似于一个密码,用于标识和限制对百度地图 API 的访问权限。开发者在使用百度地图 API 时,需要将自己的 AK 嵌入到 API 请求中,以正确地调用和使用地图功能。每个 AK 都有一定的访问频率和配额限制,以保障服务的稳定性和可用性。

  • 百度地图官网进行认证
  • 点击我的应用,进行新应用的创建,类型为android SDK ,名字自命名,而后填写需要的SHA1
什么是SHA1呢?

SHA 1 _哈希算法。SHA1是一种加密算法,全称是Secure Hash Algorithm 1。在Android开发中,SHA1通常用于生成密钥、认证和数据完整性检查等方面。SHA1算法会将输入的数据(例如字符串、文件等)转换为一个固定长度的哈希值,通常是160位的二进制值。这个哈希值是唯一的,相同的输入将始终生成相同的哈希值,而不同的输入生成的哈希值几乎是完全不同的。SHA1在很多场景中被广泛使用,如数字签名、密码存储、消息认证等。在Android中,SHA1也常用于在应用程序中生成唯一标识符和签名验证等方面。

那么怎么获取SHA1呢

  • 首先调式版本的SHA1,获取步骤如下:
    打开cmd -> cd.android --->keytool -list -v -keystore debug.keystore
  • 其中发布版SHA1的密钥文件是你自己创建keystore时生成的JKS文件,如何获取?见下一步
  • 在自己创建得keystore 路径中 打开DOS界面输入指令 keytool -list -v -keystore + 文件名及后缀
JKS文件和Keystore文件的区别:

JKS格式的文件和Keystore格式的文件都是用于存储密钥和证书的文件格式,但两者之间有一些区别:

  1. 文件扩展名:JKS格式的文件扩展名为.jks,而Keystore格式的文件扩展名可以是.jks、.jceks、.p12、.pfx等。
  2. 文件结构:JKS格式的文件是Java Key Store格式,是以Java KeyStore API为基础的专用格式,它可以存储多个密钥和证书,并使用别名进行引用。Keystore格式的文件可以是不同的类型,如PKCS#12、JKS等,但它们都可以包含一个或多个密钥和证书。
  3. 密钥类型:JKS格式的文件可以存储不同类型的密钥,包括私钥、公钥、对称密钥等。Keystore格式的文件也可以存储不同类型的密钥,但具体支持的密钥类型取决于文件的格式和使用的API。
  4. 兼容性:JKS格式的文件是Java特定的格式,主要用于Java应用程序和工具。Keystore格式的文件可以在不同的平台和语言中使用,因为它们可以基于公共的密钥存储标准如PKCS#12。
    总的来说,JKS格式的文件是Java特定的密钥存储格式,适用于Java环境中的应用程序和工具。而Keystore格式的文件是一种通用的密钥存储格式,可以在不同的平台和语言中使用。
  • 创建一个Unity工程,环境为安卓环境

  • 而后PackageName 要与Unity工程的PackageName保持一致

  • 提交后即可显示新建应用


🎶(5)百度SDK导入unity


  • 创建一个简易的Button按钮
  • 编写其按钮在安卓模式下的交互脚本
csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//---------------------------------------------------------------------------------------------------------------
//___________项目:       ______________
//___________功能:  按钮响应百度地图的接入
//___________创建者:_______秩沅_____
//_____________________________________
//-------------------------------------
public class Onclick : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    /// <summary>
    /// 点击按钮时调用
    /// </summary>
    public void OnButtonClick()
    {

#if UNITY_EDITOR//平台判断语句
        Debug.Log("进入编辑器模式!");
#endif

#if UNITY_ANDROID
        Debug.Log("进入安卓模式");
        var pl = new AndroidJavaClass("com.DefaultCompany.BaiduMap.UnityPlayer");
        var activity = pl.GetStatic<AndroidJavaObject>("currentActicity");
        var args = new string[2] { "param1", "param2" };
        activity.Call("Unity2AndroidFunc",args[0],args[1]);          
#endif  
    }
}

  • 在Asset文件夹下新建一个Plugins/Android文件夹,把下载的百度SDK"中的这几个文件夹拖到到这个文件夹下面

🎶(6)Unity安卓平台打包


  • step1: 首先在 Building setting ------Player setting 中设置公司名,游戏名
  • step2: 查看包名
  • step3: 打开Keystore Manager密钥库管理器新建签名

  • step4:填写发布相关(Publishing Setting)的信息

  • step5 :纹理压缩(Texture Compression)选择 ETC2

  • step6: 勾选Export Project (导出用于Android Studio 的 Gradle文件)而后点击导出 Export
  • 导出后如下所示

后续见下一章节

⭐🅰️⭐



【Unityc#专题篇】之c#进阶篇】

【Unityc#专题篇】之c#核心篇】

【Unityc#专题篇】之c#基础篇】

【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】---进阶章题单实践练习

【Unityc#专题篇】---基础章题单实践练习

【Unityc#专题篇】---核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!



相关推荐
baiduopenmap2 小时前
百度世界2024精选公开课:基于地图智能体的导航出行AI应用创新实践
前端·人工智能·百度地图
闲暇部落2 小时前
‌Kotlin中的?.和!!主要区别
android·开发语言·kotlin
/**书香门第*/2 小时前
Cocos creator 3.8 支持的动画 7
学习·游戏·游戏引擎·游戏程序·cocos2d
诸神黄昏EX4 小时前
Android 分区相关介绍
android
大白要努力!5 小时前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
Estar.Lee5 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
Winston Wood5 小时前
Perfetto学习大全
android·性能优化·perfetto
Dnelic-8 小时前
【单元测试】【Android】JUnit 4 和 JUnit 5 的差异记录
android·junit·单元测试·android studio·自学笔记
Eastsea.Chen11 小时前
MTK Android12 user版本MtkLogger
android·framework
向宇it16 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎