友盟+搜索

{{errorMsg}}

SDKs集成

SDK导入

友盟+ 新版组件化sdk支持两种集成方式。

Android Studio集成 (推荐)

1、选择SDK功能组件并下载,解压.zip文件得到相应组件包(例如:umeng-common-1.1.0.jar、umeng-analytics-7.1.0.jar等),在Android Studio的项目工程libs目录中拷入相关组件jar包。

2、右键Android Studio的项目工程—>选择Open Module Settings —>在 Project Structure弹出框中 —>选择 Dependencies选项卡 —>点击左下“+”—>选择组件包类型—>引入相应的组件包。

Eclipse集成

  1. 选择SDK功能组件并下载,解压.zip文件得到相应组件包(例如:umeng-common-1.1.0.jar、umeng-analytics-7.1.0.jar等)。
  2. 在Eclipse中右键工程根目录,选择Properties —> Java Build Path —> Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。(ADT17及以上不需要手动导入)。

其它功能库

  • 地理位置信息:AMap_Channel_Location_V1.3.0_20160519.jar,包含地理位置信息的补充包,如果需要请按照如上两种方式之一集成。

  • UTDID:utdid4all-1.1.5.3_proguard.jar,包含阿里UTDID服务的补充包,如果需要请按照如上两种方式之一集成。

SDK初始化

添加初始化方法

在项目工程的自定义application中的onCreate方法中添加以下两个方法之一

注意:一定要在主进程进行该项操作

方法一:

/**
* 初始化common库
* 参数1:上下文,不能为空
* 参数2:设备类型,UMConfigure.DEVICE_TYPE_PHONE为手机、UMConfigure.DEVICE_TYPE_BOX为盒子,默认为手机
* 参数3:Push推送业务的secret
*/
UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "1fe6a20054bcef865eeb0991ee84525b");


注意: 如果项目的Manifest文件中已经配置友盟的appkey和channel,则使用该方法初始化,同时不必再次传入appkey和channel两个参数

参数1:上下文,必须的参数,不能为空

参数2:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机

参数3:Push推送业务的secret,需要集成Push功能时必须传入Push的secret,否则传空

方法二:

/**
* 初始化common库
* 参数1:上下文,不能为空
* 参数2:友盟 app key
* 参数3:友盟 channel
* 参数4:设备类型,UMConfigure.DEVICE_TYPE_PHONE为手机、UMConfigure.DEVICE_TYPE_BOX为盒子,默认为手机
* 参数5:Push推送业务的secret
*/
UMConfigure.init(this, "58edcfeb310c93091c000be2", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "1fe6a20054bcef865eeb0991ee84525b");

注意:

参数1:上下文,必须的参数,不能为空

参数2:友盟 app key,非必须参数,如果Manifest文件中已配置app key,该参数可以传空,则使用Manifest中配置的app key,否则该参数必须传入

参数3:友盟 channel,非必须参数,如果Manifest文件中已配置channel,该参数可以传空,则使用Manifest中配置的channel,否则该参数必须传入

参数4:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机

参数5:Push推送业务的secret,需要集成Push功能时必须传入Push的secret,否则传空

添加相关权限

<!-- 必须的权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

<!-- 推荐的权限 -->
<!-- 添加如下权限,以便使用更多的第三方SDK(如:高德定位SDK)和更精准的统计数据 -->
<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_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />


AndroidManifest清单配置文件方式初始化appkey和channel

为了兼容老版本的SDK,本版本中仍然支持Manifest配置文件方式设置appkey和channel,内容如下:

<manifest>
    <application ……>
        ……
        <meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/> 
        <meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/> 
    </application>    
</manifest>

完成上述步骤,友盟产品的初始化就完成了,对于各组件产品的其它设置或高级功能请查看具体组件详细内容。

注意:即使用户已经在项目AndroidManifest.xml清单配置中设置了appkey和channel, 新版组件化SDK还是要求必须在项目工程的自定义application中的onCreate方法中调用初始化函数UMConfigure.init,已经在AndroidManifest.xml清单配置中设置了appkey和channel参数的用户,初始化函数中appkey和channel参数可以传入null。

常用接口

设置Log开关

初始化时可以通过该方法设置组件化的Log是否输出,默认关闭Log输出

/**
* 设置组件化的Log开关
* 参数: boolean 默认为false,如需查看LOG设置为true
*/
UMConfigure.setLogEnabled(true);

设置日志加密

初始化时可以通过该方法设置日志加密

/**
* 设置日志加密
* 参数:boolean 默认为false(不加密)
*/
UMConfigure.setEncryptEnabled(true);

  • 如果参数为true,SDK会对日志进行加密。加密模式可以有效防止网络攻击,提高数据安全性。
    • 如果参数为false,SDK将按照非加密的方式来传输日志。
    • 如果您没有设置加密模式,SDK的加密模式为false(不加密)。

技术支持

☺为了能够尽快响应您的反馈,请提供您的appkey及console中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。常见问题请阅读友盟论坛中统计SDK常见问题索引