集成友盟的意见反馈功能
来源:互联网 发布:jsp是不是javascript 编辑:程序博客网 时间:2024/05/19 18:45
最近一直在开发毕业设计的项目,其中用到了很多自己没接触过的东西,就包括集成友盟SDK的意见反馈模块的内容了。确实用了一点心思在里面,捣鼓了一阵子,中间也遇到了一些问题,关键这问题也不好解决,问大神大神也不一定有去接触这一块,然后网上是有很多资料,但总感觉对我的帮助不是很大,所以,当完成了友盟的这块功能后,就特别想贡献出来,一是为以后方便自己重温这块知识点,二是顺便 发布出来帮助像我这样遇到问题一直寻求解决办法的人。好了,废话不多说了,直接上效果图,然后PO代码!
效果图如下:
当然顺便也po上友盟后台时时接收的用户反馈的信息:
效果还是比较OK的,基本足够使用了。当然代码模块也是比较简单的,没使用太多自定义的东西,基本就是根据友盟提供的意见反馈模块的文档流程走,下面就po上具体的代码实现过程啦(附上友盟意见反馈集成文档地址:http://dev.umeng.com/feedback/android/integration):
第一步:
当然是下载好友盟意见反馈的SDK了,将下载的zip压缩包里面的libs里面的文件拷贝到工程目录对应的libs中,需要时将.jar add to build。然后res文件夹下的文件对应的拷贝到工程目录下的res文件夹下,这是最基本的步骤了。
第二步:
清单文件下,必须加上的代码:
1.权限代码:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.还有这个:
<activity android:name="com.umeng.fb.ConversationActivity" /> <meta-data android:name="UMENG_APPKEY" android:value="55234916fd98c52d300003d5" /> <meta-data android:name="UMENG_CHANNEL" android:value="Umeng" />注意:<meta_data/>下的android:value是你在友盟注册完成后创建你自己的应用所获得APPKey,这是应用唯一指定的。第二个value的值则是推广渠道,这里用的是“Umeng”,当然也可以是“wandoujia”之类的。
第三步:就是代码编写的问题了。首先是布局这块,布局代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#F0F0F0" android:orientation="vertical" > <LinearLayout android:id="@+id/head_layout" android:layout_width="match_parent" android:layout_height="45dp" android:background="@color/title_red" android:orientation="horizontal" > <ImageButton android:id="@+id/ib_back" android:layout_width="40dp" android:layout_height="40dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@null" android:src="@drawable/back_background" /> </LinearLayout> <EditText android:id="@+id/et_content" android:layout_width="match_parent" android:layout_height="200dp" android:layout_margin="10dp" android:background="@drawable/et_feedback_background" android:gravity="left|top" android:padding="5dp" android:hint="请输入您的反馈意见吧" /> <EditText android:id="@+id/et_contact" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="10dp" android:background="@drawable/et_feedback_background" android:padding="5dp" android:hint="联系方式(如邮箱)" /> <Button android:id="@+id/btn_send" android:layout_width="match_parent" android:layout_height="40dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:background="@drawable/logout_bg" android:text="提交" android:textColor="#ffffffff" android:textSize="20sp" /></LinearLayout>
然后就是在Activity里实现的java代码了,这块也比较简单,需要调用到的友盟的基本代码不多,只有:
private Conversation conversation;private FeedbackAgent agent;其中Conversation是会话层面的。
具体的就直接上代码吧,用到友盟意见反馈所需要的主要的代码块都有注释到,就不解释了:
public class MainActivity extends Activity implements OnClickListener,SyncListener {private EditText et_content;private EditText et_contact;private Button btn_send;private ImageButton btn_back;private Conversation conversation;private FeedbackAgent agent;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();agent = new FeedbackAgent(this);}/** * */private void initView() {et_content = (EditText) findViewById(R.id.et_content);et_contact = (EditText) findViewById(R.id.et_contact);btn_send = (Button) findViewById(R.id.btn_send);btn_back = (ImageButton) findViewById(R.id.ib_back);btn_send.setOnClickListener(this);btn_back.setOnClickListener(this);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.ib_back:finish();break;case R.id.btn_send:String content = et_content.getText().toString().trim();String contact = et_contact.getText().toString().trim();if (content.equals("")) {Toast.makeText(this, "输入的信息不能为空", 1).show();} else {UserInfo info = new UserInfo();Map<String, String> map = info.getContact();if (contact == null)map = new HashMap<String, String>();map.put("plain", contact);info.setContact(map);agent.setUserInfo(info);// 保存联系方式conversation = agent.getDefaultConversation();conversation.addUserReply(content);// 用户反馈意见conversation.sync(MainActivity.this);}break;}}@Overridepublic void onReceiveDevReply(List<Reply> arg0) {// TODO Auto-generated method stub}@Overridepublic void onSendUserReply(List<Reply> arg0) {et_contact.setText("");et_content.setText("");Toast.makeText(this, "感谢您的意见反馈,您的支持是我的动力!", 1).show();finish();}}
这只是个Demo。所以顺便也把demo下载地址也po上来吧:
下载地址
0 0
- 集成友盟的意见反馈功能
- 友盟自定义意见反馈Demo
- Android应用中意见反馈功能的探讨与实现
- Android应用中意见反馈功能的探讨与实现
- Android应用中意见反馈功能的探讨与实现
- 友盟意见反馈——对话框改为单一的用户反馈
- 友盟意见反馈——对话框改为单一的用户反馈
- 意见反馈
- 如何看待APP应用中的“意见反馈”功能
- 意见反馈 页面布局的设计
- 【单目全景相机】友盟分享功能的集成
- 用PHP制作的意见反馈表
- 坛子的意见反馈渠道在哪里?
- Android用户体验之意见反馈的重要
- Android程序开发意见反馈的实现
- 项目实战:优雅的实现专车意见反馈
- ios 分享功能 集成友盟分享
- Android集成友盟推送功能
- 解决tomcat 中文转码
- 上下文菜单Context Menu如何实现点击事件
- 《重构:改善既有代码的设计》读书笔记
- 苹果App Store开发者帐户从申请,验证,到发布应用(4)
- 黑马程序员——C语言——函数、内存剖析
- 集成友盟的意见反馈功能
- javabean、注解类、类加载器
- MFC数据库操作 - 增加新记录
- 逆波兰表达式
- 代理
- oracle spfile参数设置错误的处理方法
- D. Little Girl and Maximum XOR(贪心)
- 核桃的数量
- java对日期时间的处理