【干货分享】百度系三大产品组件详解

【背景介绍】


百度针对Android/IOS设备,提供了一系列应用程序接口,包括统计、定位、语音等等。开发者可以利用这些接口,使用统计组件分析应用程序,使用定位组件为应用程序增加位置信息,使用语音组件为应用程序增加语义识别功能。


一、统计

百度移动统计(http://mtj.baidu.com)是业界领先的免费移动应用统计分析工具,支持iOS和Android平台,开发者通过嵌入统计SDK,实现对移动应用的全面监测,实时掌握产品表现,准确洞察用户行为。强大的报表分析功能,助您做到心中有“数”。


使用方法:


百度移动统计提供了基本统计、错误统计、自定义事件统计等的功能。


1.1 基本统计


安卓
有两种方案做基本统计
嵌入API的方式,开发者需要在每个Activity的onResume()和onPause()中调用SDK提供的StatService.onResume(Context context)和StatService.onPause (Context context);
直接继承SDK提供的StartService类。StatActivity封装了StatService.onResume(context)和StatService.onPause(context)方法,方便开发者统计页面信息。

IOS
(void) pageviewStartWithName:(NSString*) name
(void) pageviewEndWithName:(NSString*) name
在IOS中某个视图开始被展示时调用 ,为该次视图访问命名为name。与pageviewEndWithName接口配对使用,在该视图消失时,调用pageviewEndWithName接口,填入同样的name值


1.2 错误统计


安卓
void setOn(Context context, int flag)
1) 嵌入位置:启动Activity的OnCreate()回调方法内。
2) 功能:开关类型的API,功能是否被启用,通过参数flag控制。目前,提供了错误分析的功能,后续版本的SDK会支持更多的功能。
3) 自定义事件统计

安卓
自定义事件需要在百度移动统计的设置中的自定义事件管理中添加对应的事件ID。
void onEvent(Context context, String event_id, String label)
void onEvent(Context context, String event_id, String label, int acc)
可嵌入代码的任何位置

IOS
(void) logEvent:(NSString*) eventId eventLabel:(NSString*)eventLabel


二、定位

百度地图Android定位SDK是为Android移动端应用提供的一套简单易用的LBS定位服务接口,专注于为广大开发者提供最好的综合定位服务,通过使用百度定位SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。


使用方法:


2.1 初始化步骤


1) 设置AndroidManifest.xml
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service>

2) 声明使用权限
声明网络定位、GPS定位、访问WIFI、SDK读、运营商信息、手机状态、 访问网络、SD卡等的权限。

3) 设置AcessKey
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="key" />  //key:开发者申请的key     

4) import相关类
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.BDNotifyListener;//假如用到位置提醒功能,需要import该类
import com.baidu.location.Poi;


2.2定位接口


1) 初始化LocationClient类

主线程中声明LocationClient类

public LocationClient mLocationClient = null;
public BDLocationListener myListener = new MyLocationListener();
public void onCreate() { mLocationClient = new LocationClient(getApplicationContext());
//声明LocationClient类
mLocationClient.registerLocationListener( myListener ); //注册监听函数 }

2) 配置定位SDK参数
使用LocationClientOption类,设置定位参数包括:定位模式(高精度定位模式,低功耗定位模式和仅用设备定位模式),返回坐标类型,是否打开GPS,是否返回地址信息、位置语义化信息、POI信息等等

3) 实现BDLocationListener接口
BDLocationListener接口有1个方法需要实现: 1.接收异步返回的定位结果,参数是BDLocation类型参数。
public class MyLocationListener implements BDLocationListener{ @Override
public void onReceiveLocation(BDLocation location) { }

4) 开启定位
mLocationClient.start();


三、语音

百度语音识别是一种面向移动设备的语音识别解决方案。通过该方案,开发者可以轻松构建出功能丰富、交互性强的语音识别应用程序。


使用方法:


语音SDK的识别主要有语音识别控件和API方式两种识别方法


3.1 语音识别控件 


1) 创建识别对象


安卓
// 创建百度语音识别对话框
BaiduASRDigitalDialog mDialog = new BaiduASRDigitalDialog(this, params);
// 设置对话框回调监听器

mDialog.setDialogRecognitionListener(new DialogRecognitionListener(){

// 识别结果处理函数

public void onResults(Bundle arg0) {

ArrayList<String> rs = results != null ? results .getStringArrayList(RESULTS_RECOGNITION) : null;
if (rs != null && rs.size() > 0) { recognition_result = rs.get(0); }
});

2) 启动识别


安卓

mDialog.show();


IOS
[recognizerViewController startWithParams:paramsObject];


3.2 API方式识别 


1) 创建实例


安卓
private android.speech.SpeechRecognizer mSpeechRecognizer; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// ...

mSpeechRecognizer=SpeechRecognizer.createSpeechRecognizer(this,new  ComponentName(this, VoiceRecognitionService.class)); }

IOS
BDVoiceRecognitionClient *sharedInstance = [BDVoiceRecognitionClient sharedInstance];

2) 设置监听


安卓
RecognitionListener listener = new RecognitionListener() { // ..., 略过具体实现  };
mSpeechRecognizer.setRecognitionListener(listener);

监听器包括onReadyForSpeech、onBeginningOfSpeech、onRmsChanged、onBufferReceived、onEndOfSpeech、onResults等方法的回调


IOS
接收结果需要实现MVoiceRecognitionClientDelegate协议。此协议主要是通知识别过程中的各种状态和结果
 

3) 开始识别


安卓
Intent recognizerIntent = new Intent();
// recognizerIntent.putExtra ...

mSpeechRecognizer.startListening(recognizerIntent);


IOS
int startStatus = [[BDVoiceRecognitionClient sharedInstance] startVoiceRecognition:self]; switch(startStatus)
 { case EVoiceRecognitionStartWorking :...... // 启动成功 ......  }

4) 停止录音


安卓
mSpeechRecognizer.stopListening();




随意打赏

提交建议
微信扫一扫,分享给好友吧。