android第三方开发包(十七)
介绍App开发常见的第三方开发包,主要包括国内两家主要的地图服务开发(百度地图和高德地图)、全球华人主要的两个分享渠道开发(QQ分享和微信分享)、国内两家主要的支付服务开发(支付宝和微信支付)、中文世界主要的语音服务开发(讯飞语音的语音识别和语音合成)。
一、地图SDK
由于地图功能与用户所在国家密切相关,因此Android系统自身并不提供地图功能,App需要接入第三方地图开发包才能实现相关功能。
1.查看签名信息
App的包名相当于人们的身份证,然而这个身份证很容易被伪造,这时就要引入其他身份鉴伪标志。
对于人类来说,可以通过指纹识别是否为本人。对于App来说,也有类似指纹的标志信息,即App的签名信息。
如果App的安装包被篡改,那么签名信息必然发生变化,通过校验签名就能鉴别该App的真伪。
App有了签名作为身份信息,才允许在Android系统上安装和运行
如何获取签名信息
应用一般把SHA1作为签名信息,在开发调试和上线发布这两个阶段,分别对应两种签名:
1. 开发版签名
Android Studio自带的签名文件位于用户目录的.android/debug.keystore。
若要更换调试用的签名文件,则需要修改对应模块的build.gradle,即在该编译文件的android节点下补充签 名配置。
2. 发布版签名
导出APK安装包需要密钥文件,这个密钥文件就是发布版的签名文件。
2.百度地图
百度地图的开放平台网址是http://lbsyun.baidu.com/。
引入百度地图的总体步骤如下:
(1)在开放平台上面下载地图SDK。
(2)申请开发者账号。
(3)创建测试应用,并填写测试应用的包名和SHA1签名串。
(4)修改App工程的AndroidManifest.xml,在application节点下补充百度地图的密钥配置。并注册百度地图的 定位服务。
(5)把地图SDK导入到App工程中。
百度地图申请测试应用的页面
百度地图的主要应用
地图的开发有很多应用场景,主要包括:
1. 显示地图并定位 对于地图SDK来说,最基础的功能是显示当前城市的地图。
2. POI搜索 根据关键词搜索并在地图上显示周边地点的查询结果。
3. 距离与面积测量 估算平面上的地理测量数据,为进一步决策提供参考。
4. 行车路径导航 为用户提供从出发地到目的地的最佳规划路线。
百度地图的运行界面
3.高德地图
高德地图的开放平台网址是http://lbs.amap.com/。
引入高德地图的总体步骤如下:
(1)在开放平台上面下载地图SDK。
(2)申请开发者账号。
(3)创建测试应用,并设置测试应用的包名和SHA1签名串。
(4)修改App工程的AndroidManifest.xml,在application节点下补充高德地图的密钥配置。并注册高德地图的 定位服务。
(5)把地图SDK导入到App工程中。
高德地图设置应用信息的页面
高德地图的运行界面
二、分享SDK
社会化分享指的是用户通过互联网这个媒介把文本/图片/多媒体信息分享到该用户的交际圈,从而加快信息传播的行为。App的社会化分享功能抓住几个大的圈子就够了,比如QQ、微信、QQ空间、微信朋友圈等。本节介绍QQ分享与微信分享的实现方案。
1.QQ分享
QQ好友分享与QQ空间分享同属QQ互联平台上的QQ分享,该平台的网址是https://connect.qq.com/。
下面是QQ分享用到的Tencent类的主要方法说明。
createInstance:根据appid创建一个Tencent实例。
login:QQ账号登录。
setAccessToken:设置入口令牌。
setOpenId:设置开放标识。
getQQToken:获取QQ登录授权的令牌。
shareToQQ:分享给QQ好友。
shareToQzone:分享到QQ空间。
QQ分享的界面效果
2.微信分享
微信开放平台的网址是https://open.weixin.qq.com/。
微信好友分享与微信朋友圈分享统称为微信分享。
下面是微信分享用到的IWXAPI类的常用方法说明。
createWXAPI:创建一个微信API实例。
registerApp:注册指定的appid。
sendReq:发送分享请求。该方法的参数为SendMessageToWX.Req对象。
如何发送微信的分享消息
下面是SendMessageToWX.Req的常用属性说明。
transaction:本次请求的流水。
scene:本次请求的场景。
1)SendMessageToWX.Req.WXSceneSession表示分享给微信好友;
2)SendMessageToWX.Req.WXSceneTimeline表示分享到朋友圈。
message:本次请求的信息。该方法的参数为WXMediaMessage对象。
下面是WXMediaMessage的常用属性说明。
title:分享的标题。
description:分享的内容。
mediaObject:分享的媒体信息。
thumbData:分享的缩略图。
微信分享的界面效果
三、支付SDK
第三方支付指的是第三方平台与各银行签约,在买方与卖方之间实现中介担保,从而增强支付交易的安全性。国内常用的支付平台主要有支付宝和微信支付,本节对支付宝和微信支付分别进行介绍。
1. 支付宝支付
支付宝的官方平台是蚂蚁金服开放平台,网址是https://open.alipay.com/。
因为第三方支付只是一个中介,交易流程要多次确认,所以App若要集成支付SDK,需要进行以下处理:
(1)除了作为买方的用户自己拥有支付账号,开发者还得申请作为卖方的商户账号。
(2)支付过程中,虽然允许App直接与第三方支付平台通信,但是正常要有自己的后台服务器,由服务器与第 三方平台进行通信。
(3)为保证信息安全,需对关键数据进行加密处理
支付宝SDK的交易流程
(1)按照指定格式封装好交易信息。
(2)对交易信息进行RSA加密与URL编码。
(3)调用支付接口,传入加密好的信息串(这步要另开线程处理,不能放在UI线程中)。
(4)支付宝SDK在界面下方弹出支付窗口,用户输入支付账号信息,提交支付。
(5)收到支付完成的结果,判断支付状态是成功还是失败,并做相应的后续处理。
支付宝SDK的演示效果
2.微信支付
微信支付的官方平台是微信开放平台,网址是https://open.weixin.qq.com/。
在微信开放平台上申请测试应用,默认已获得微信分享的权限,而微信支付权限需要另外申请开通。
因为个人开发者无法申请微信支付功能,所以只能使用官方DEMO工程里的测试账号进行演示。
由于微信支付与微信分享在同一个开发包中,因此集成步骤与微信分享大致相同。
微信支付的交易流程
(1)使用开发者申请到的APP_ID和APP_SECRET向微信平台请求获取入口令牌。
(2)封装订单信息,并对订单信息进行MD5摘要处理。
(3)把加密后的订单与入口令牌发给微信平台,生成预支付订单,返回预付订单编号。
(4)重新封装订单信息,加上预付订单编号,向微信平台发起支付交易。
(5)跳到微信支付页面,用户输入支付账号信息,提交支付。
(6)支付完成,回到支付结果页面并进行回调操作。
微信支付的演示效果
四、语音SDK
语音技术主要分为两块,一块是语音转文字,即语音识别;另一块是文字转语音,即语音合成。国内的语音服务提供商主要有两家:讯飞语音和百度语音。
1.文字转语音TextToSpeech
Android内置了语音合成引擎,即“Pico TTS”。该引擎支持英语、法语、德语、意大利语,但不支持中文。
Android从4.0开始允许接入第三方的语音引擎,因此只要在设备上安装了中文引擎,就能在代码中使用中文语音合 成 服务。
不管是系统自带的Pico引擎,还是手机厂商集成的中文引擎,都支持通过系统的API进行文本的语音合成。
如何使用TextToSpeech
下面是TextToSpeech常用的方法说明。
构造函数:第二个参数设置语音监听器,第三个参数设置语音引擎。
setLanguage:设置语言。
setSpeechRate:设置语速。
setPitch:设置音调。
speak:开始对指定文本进行语音朗读。
stop:停止朗读。
shutdown:关闭语音引擎。
isSpeaking:判断是否在语音朗读。
getEngines:获取系统支持的所有语音引擎。
实现语音播报的处理流程
(1)调用带两个参数的构造函数进行初始化;
(2)调用getEngines方法获得系统支持的语音引擎队列;
(3)调用带三个参数的构造函数初始化指定引擎;
(4)调用setLanguage方法设置该引擎支持的语言;
(5)最后调用speak方法开始朗读动作。
使用TTS的界面效果
2.语音识别
讯飞语音的开放平台网址是http://www.xfyun.cn/。
引入讯飞语音的总体步骤如下:
(1)申请开发者账号。
(2)创建测试应用。
(3)开通测试应用的语音听写和语音合成服务。
(4)在开放平台上面下载指定应用的语音SDK。
(5)把语音SDK导入到App工程中。
如何实现语音识别功能
讯飞SDK的语音识别功能主要通过SpeechRecognizer类实现,有以下常用方法。
createRecognizer:创建语音识别对象。
setParameter:设置语音识别的参数。
startListening:开始监听语音。
stopListening:结束监听语音。
writeAudio:把指定的音频流作为语音输入。
cancel:取消监听。
destroy:回收语音识别对象。
语音识别的界面效果
3.语音合成
讯飞的语音合成和语音识别功能在同一个开发包中,只需一次集成,无须重复。
讯飞SDK的语音合成功能主要通过SpeechSynthesizer类实现,有以下常用方法。
createSynthesizer:创建语音合成对象。
setParameter:设置语音合成的参数。
startSpeaking:开始语音朗读。
pauseSpeaking:暂停朗读。
resumeSpeaking:恢复朗读。
stopSpeaking:停止朗读。
destroy:回收语音合成对象。
语音合成的界面效果
小知识:评分条RatingBar
在服务行业中,商家信誉是一个很重要的指标,信誉好的商户,生意自然越来越好。
评分条RatingBar常用于消费者每次光顾商家后的星级评价,比如购物完成、行程结束之后的打分。
RatingBar其实是拖动条SeekBar的升级版,不同之处在于把进度标记换成了五角星。
android第三方开发包(十七)相关推荐
- Android第三方开发包之高德地图SDK使用介绍
Android第三方开发包之高德地图SDK使用介绍 前言 准备 Android Studio 配置工程 1,新建一个 Empty Activity 应用项目. 2,添加SDK 3,集成SDK 显示地图 ...
- Android第三方开发包值高德地图SDK使用介绍
(1)配置Project的build.gradle:添加jcenter的仓库地址 文件位置: 代码: allprojects { repositories { jcenter() // 或者 mave ...
- Android第三方开发包值高德地图SDK使用介绍,android面试基础
jcenter() // 或者 mavenCentral() } } (2)配置主工程文件的build.gradle文件 文件位置: 代码: android { defaultConfig { ndk ...
- Android SDK开发包下载地址
Android SDK开发包国内下载地址 不知道是因为最近kaihui还是怎么的,打开android sdk官方网站特别的慢,想下载最新版本的platform几乎变成不可能完成的任务,不知道为什么Go ...
- Android SDK开发包国内下载地址
八进制 少年壮志无烟抽 首页 新随笔 联系 订阅 Android SDK开发包国内下载地址 http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/2 ...
- swag_ios安卓 testlight /apps/android官方开发包安装
package main import( archive.https://1024td.com @91.189.91.93 security// 当前服务器ip "github.co ...
- 【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本...
问题描述 解决方法 先了解compile comsquareupokhttpokhttp240的意义 了解Jcenter和Maven jcenter Maven Central 理解jcenter和M ...
- 支付宝钱包接口开发包2.0标准版接入与使用规则
接入与使用规则 支付宝钱包支付接口开发包 2.0 标准版 附录文档 版本号:1.3 支付宝(中国)网络技术有限公司 版权所有 支付宝钱包支付接口开发包 2.0 标准版附录文档 目录 1 文档说明... ...
- 《深入解析Android 5.0系统》——第1章,第1.2节安装开发包
本节书摘来自异步社区<深入解析Android 5.0系统>一书中的第1章,第1.2节安装开发包,作者 刘超,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.2 ...
最新文章
- OpenStack Newton发布,EasyStack核心代码贡献中国第一!
- keil5改工程名称_修改Keil工程名称并添加其他模块文件
- E. Turn Off The TV Educational Codeforces Round 29
- Go基础编程:基础数据类型
- Android布局大全
- P7045-[MCOI-03]金牌【构造,交互题】
- JSF AJAX请求的会话超时处理
- 软件工程15 个人阅读作业1
- Qt工作笔记-使用Qt中QProcess与iostream中system调用外部进程
- 收藏 | 深度学习pytorch训练代码
- 结合图拉普拉斯的半监督学习
- 【Elasticsearch】实用BM25 -第1部分: shard 如何影响Elasticsearch中的相关性评分
- MySQL-数据类型 整理总结
- NetBeans 时事通讯(刊号 # 80 - Nov 15, 2009)
- 2022年最完整的html网页跳转代码大全
- 嵌入式开发:调试嵌入式软件的技巧
- android studio 报错 AAPT: error: style attribute ‘attr/colorPrimary (aka com.
- (原创)六度拓扑(www.6dtop.com)---超乎想像的人际关系网络
- 计算机网络系统中常用的四对双绞线电缆,计算机网络中常用的三种有线传输媒体是什么?...
- oracle 根据出生年份计算生肖
热门文章
- win7下用VS编译SBA(摄影测量光束法平差程序库)
- 扇贝一面----Android面经
- 结合PROFINET和OPC UA的优势监控现代化设备
- 第5组UI 让你的界面酷炫到底-ViewAniMator之ViewSwitcher、ImageSwitcher(图像切换器)、TextSwitcher(文本切换器)、ViewFlipper
- Day524.其他数据库日志 -mysql
- 虚拟直播需要哪些设备?如何搭建虚拟直播团队?
- Redis启动窗口一闪就关
- matplotlib红橙黄绿青蓝紫(含颜色大全)
- Linux安装Elasticsearch和Kibana
- 防雷接地系统中的浪涌保护器分类选型