摇一摇用户信息反馈功能:用户通过摇晃手机或者触发按钮,弹出反馈信息界面,填写个人意见,上传服务器的功能。
1. 蒲公英官网注册应用,获取AppId作为唯一标识;
2. 下载sdk,获取pgyer_sdk_2.7.4.jar包。
网址:https://www.pgyer.com/doc/view/sdk_download
3. 配置project下的build.gradle文件
allprojects {
repositories {
jcenter()
maven { url "https://raw.githubusercontent.com/Pgyer/mvn_repo_pgyer/master" }
}
}
4. 配置module下的build.gradle文件
dependencies {
compile 'com.pgyersdk:sdk:2.7.3'
}
或者将获取的pgyer_sdk_2.7.4.jar放到libs目录,右键添加到项目。
5. 配置 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" /> <!-- 获取MAC地址-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 读写sdcard,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" /> <!-- 获取logcat日志 -->
<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>
6. Android 7.0还应该配置 AndroidManifest:
在application节点下添加:
<provider android:name="android.support.v4.content.FileProvider"
android:authorities="您自定义provider file值"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
在res目录下新建文件夹xml,新建文件:provider_paths.xml,文件内添加:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path path="Android/data/com/pgyersdk" name="files_root" />
<external-path path="." name="external_storage_root" /></paths>
7, 在MainActivity中添加java代码。
7-1 . onCreate方法:
//动态请求权限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(
new String[] { Manifest.permission.READ_EXTERNAL_STORAGE },
REQUEST_CODE_READ_EXTERNAL_STORAGE_PERMISSIONS);
requestPermissions(
new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
REQUEST_CODE_WRITE_EXTERNAL_STORAGE);
}
}
7-2. 添加权限请求监听
@SuppressLint("NewApi")
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_WRITE_EXTERNAL_STORAGE: {
for (int i = 0; i < permissions.length; i++) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
} else {
}
}
}
case REQUEST_CODE_READ_EXTERNAL_STORAGE_PERMISSIONS: {
for (int i = 0; i < permissions.length; i++) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "允许读写存储!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "未允许读写存储!", Toast.LENGTH_SHORT).show();
}
}
}
break;
default: {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}
7-3. onResume方法,初始化Activity类型的UI:
PgyFeedbackShakeManager.setShakingThreshold(1000);
FeedbackActivity.setBarImmersive(false);
// 设置顶部导航栏和底部bar的颜色
FeedbackActivity.setBarBackgroundColor("#ff0000");
// 设置顶部按钮和底部按钮按下时的反馈色
FeedbackActivity.setBarButtonPressedColor("#ff0000");
// 设置颜色选择器的背景色
FeedbackActivity.setColorPickerBackgroundColor("#ff0000");
PgyFeedbackShakeManager.register(MainActivity.this, false);
也可以是dialog类型的UI,那样就不用配置FeedbackActivity。
7-4. onPause方法
PgyFeedbackShakeManager.unregister();
以上的配置,是配置好了以后,摇一摇手机就会显示UI界面。
如果是想通过点击按钮触发显示反馈界面,则可以添加如下代码:
FeedbackActivity.setBarImmersive(false);
PgyFeedback.getInstance().showActivity(mContext);