集成友盟的意见反馈功能

  最近一直在开发毕业设计的项目,其中用到了很多自己没接触过的东西,就包括集成友盟SDK的意见反馈模块的内容了。确实用了一点心思在里面,捣鼓了一阵子,中间也遇到了一些问题,关键这问题也不好解决,问大神大神也不一定有去接触这一块,然后网上是有很多资料,但总感觉对我的帮助不是很大,所以,当完成了友盟的这块功能后,就特别想贡献出来,一是为以后方便自己重温这块知识点,二是顺便 发布出来帮助像我这样遇到问题一直寻求解决办法的人。好了,废话不多说了,直接上效果图,然后PO代码!

  效果图如下:

集成友盟的意见反馈功能_第1张图片

当然顺便也po上友盟后台时时接收的用户反馈的信息:

集成友盟的意见反馈功能_第2张图片


效果还是比较OK的,基本足够使用了。当然代码模块也是比较简单的,没使用太多自定义的东西,基本就是根据友盟提供的意见反馈模块的文档流程走,下面就po上具体的代码实现过程啦(附上友盟意见反馈集成文档地址:http://dev.umeng.com/feedback/android/integration):

第一步:

当然是下载好友盟意见反馈的SDK了,将下载的zip压缩包里面的libs里面的文件拷贝到工程目录对应的libs中,需要时将.jar add to build。然后res文件夹下的文件对应的拷贝到工程目录下的res文件夹下,这是最基本的步骤了。


第二步:

清单文件下,必须加上的代码:

1.权限代码:

    
    
    
    
    

2.还有这个:

 

        
        
注意:下的android:value是你在友盟注册完成后创建你自己的应用所获得APPKey,这是应用唯一指定的。第二个value的值则是推广渠道,这里用的是“Umeng”,当然也可以是“wandoujia”之类的。


第三步:就是代码编写的问题了。首先是布局这块,布局代码如下:



    

        
    

    

    

    

然后就是在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;

	@Override
	protected 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);
	}

	@Override
	public 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;
	}

	@Override
	public 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 map = info.getContact();
				if (contact == null)
					map = new HashMap();
				map.put("plain", contact);
				info.setContact(map);

				agent.setUserInfo(info);// 保存联系方式

				conversation = agent.getDefaultConversation();

				conversation.addUserReply(content);// 用户反馈意见

				conversation.sync(MainActivity.this);

			}
			break;
		}
	}

	@Override
	public void onReceiveDevReply(List arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void onSendUserReply(List arg0) {
		et_contact.setText("");
		et_content.setText("");
		Toast.makeText(this, "感谢您的意见反馈,您的支持是我的动力!", 1).show();
		finish();
	}

}

这只是个Demo。所以顺便也把demo下载地址也po上来吧:

下载地址



你可能感兴趣的:(android知识)