Android SDK 2.x 集成指南
蒲公英 Android SDK 2.x 版本的集成步骤,涵盖 SDK 导入、摇一摇反馈与版本更新检查。
蒲公英 SDK 已停止维护,新集成请直接使用 蒲公英 API。本文保留用于历史版本参考。
本文介绍如何在 Android 工程中集成蒲公英 SDK 2.x 版本,并启用摇一摇用户反馈与版本更新检查。
3.0.0 起部分功能不向下兼容,新集成请参考 Android SDK 3.0.0 集成指南。
前置要求
- Android 工程(Eclipse 或 Android Studio)。
- 已在蒲公英注册应用并获取 App Key。
App Key 可在应用管理页面首页查看:

导入 SDK
Android Studio
在 project 根目录的 build.gradle 中添加仓库:
allprojects {
repositories {
jcenter()
maven { url "https://raw.githubusercontent.com/Pgyer/mvn_repo_pgyer/master" }
}
}在 module 的 build.gradle 中添加依赖:
dependencies {
compile 'com.pgyersdk:sdk:2.8.1'
}示例工程:PgyerSdkDemoForAndroidStudio。
Android Studio 用户也可以使用与 Eclipse 相同的 jar 包方式集成。
Eclipse
将 jar 包复制到工程的 libs 目录。

配置 AndroidManifest
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.READ_LOGS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name="com.pgyersdk.activity.FeedbackActivity"/>
<meta-data
android:name="PGYER_APPID"
android:value="4b6e8877dfcc2462bedb37dcf66b6d87" >
</meta-data>
</application>PGYER_APPID 即 App Key。Android 6.0 以上需要在应用内动态申请读写权限。
摇一摇用户反馈
在 Activity 中集成
import com.pgyersdk.feedback.PgyFeedbackShakeManager;
import com.pgyersdk.update.UpdateManagerListener;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
super.onResume();
// 自定义摇一摇灵敏度,默认 950,数值越小越灵敏
PgyFeedbackShakeManager.setShakingThreshold(1000);
// 以 Dialog 形式弹出(仅支持竖屏)
PgyFeedbackShakeManager.register(MainActivity.this);
// 以 Activity 形式打开(需在 AndroidManifest.xml 配置 FeedbackActivity)
// 打开沉浸式,默认 false
// FeedbackActivity.setBarImmersive(true);
PgyFeedbackShakeManager.register(MainActivity.this, false);
}
@Override
protected void onPause() {
super.onPause();
PgyFeedbackShakeManager.unregister();
}
}通过按钮弹出反馈界面
// Dialog 形式
PgyFeedback.getInstance().showDialog(MainActivity.this);
// Activity 形式(需在 AndroidManifest.xml 配置 FeedbackActivity)
// FeedbackActivity.setBarImmersive(true);
PgyFeedback.getInstance().showActivity(MainActivity.this);Activity 弹出方式需同时在 onPause() 中调用 PgyFeedbackShakeManager.unregister():
@Override
protected void onPause() {
super.onPause();
PgyFeedbackShakeManager.unregister();
}自定义外观
反馈 Dialog:
PgyerDialog.setDialogTitleBackgroundColor("#ff0000");
PgyerDialog.setDialogTitleTextColor("#ffffff");反馈 Activity:
// 顶部导航栏与底部 bar 颜色
FeedbackActivity.setBarBackgroundColor("#ff0000");
// 按钮按下反馈色
FeedbackActivity.setBarButtonPressedColor("#ff0000");
// 颜色选择器背景色
FeedbackActivity.setColorPickerBackgroundColor("#ff0000");自定义反馈信息
可添加任意数量的自定义字段:
PgyFeedback.getInstance().setMoreParam("tao", "value");自定义数据会显示在反馈详情页:

检查更新
默认对话框
import com.pgyersdk.update.PgyUpdateManager;
PgyUpdateManager.setIsForced(true); // true 为强制更新;false 为非强制(默认)
PgyUpdateManager.register(this);带回调的更新检查
import com.pgyersdk.javabean.AppBean;
import com.pgyersdk.update.PgyUpdateManager;
import com.pgyersdk.update.UpdateManagerListener;
PgyUpdateManager.register(MainActivity.this,
new UpdateManagerListener() {
@Override
public void onUpdateAvailable(final String result) {
// 将新版本信息封装到 AppBean
final AppBean appBean = getAppBeanFromString(result);
new AlertDialog.Builder(MainActivity.this)
.setTitle("更新")
.setMessage("")
.setNegativeButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startDownloadTask(
MainActivity.this,
appBean.getDownloadURL());
}
}).show();
}
@Override
public void onNoUpdateAvailable() {
}
});自定义下载后的处理
若自行实现下载,需在下载完成后调用:
UpdateManagerListener.updateLocalBuildNumber(result);解除注册
PgyUpdateManager.unregister();result 的数据格式:

混淆
-libraryjars libs/pgyer_sdk_x.x.jar
-dontwarn com.pgyersdk.**
-keep class com.pgyersdk.** { *; }