摇一摇用户信息反馈功能:用户经过摇晃手机或者触发按钮,弹出反馈信息界面,填写我的意见,上传服务器的功能。java
###1. 蒲公英官网注册应用,获取AppId做为惟一标识;android
###2. 下载sdk,获取pgyer_sdk_2.7.4.jar包。 网址:https://www.pgyer.com/doc/view/sdk_downloadgit
###3. 配置project下的build.gradle文件github
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. 配置 AndroidManifestapp
<!-- 必选--> <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:maven
在application节点下添加:ide
<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,文件内添加:gradle
<?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);