同名的ios和android应用如何申请友盟推送androidkey

问题已关闭
与已有问题相似
问题已重定向至
在 iOS 和 Android 应用中进行统计分析,有没有和友盟类似或更好的产品?
按投票排序
找友盟抄袭的祖宗呗,flurry
Google analytics能对app进行跟踪,属于免费的网站分析工具里面比较好的。付费的分析工具有webtrends,SiteCatalyst等,也可以对app进行跟踪。
已有帐号?
社交帐号登录
无法登录?
社交帐号登录&&国之画&&布布分享&&&& &&&&
版权所有 京ICP备号-2
迷上了代码!移动开发者服务平台
本篇博客给大家分享一个笔者正在做的关于第三方登录、分享的实例,这里选用的是友盟社会化组件。
博客大纲如下:
第三方登录流程
友盟支持第三方登录的平台
友盟社会化分享支持的平台
集成友盟社会化组件流程
友盟社会化SDK集成流程
第三方登录流程
移动应用授权效果图如下:
友盟支持第三方登录的平台
新浪微博、腾讯微博、QQ、QQ空间、微信、人人
友盟社会化分享支持的平台
国内平台:微信(微信好友及微信朋友圈)、QQ、Qzone、新浪微博、腾讯微博、人人网、豆瓣、短信、邮件、有道云笔记、来往、易信
国外平台:Facebook、Twitter、Instagram、EverNote、Pocket、Pinterest、Linkedin、G+
集成友盟社会化组件流程
注册友盟账号
登陆,在页面添加新应用,然后获取到Appkey
申请第三方账号
参照文档:
绑定第三方账号
参照文档:
进入下载SDK页面(),勾选自己需要的功能进行下载
友盟社会化SDK集成流程
配置AndroidManifest.xml
配置权限、友盟AppKey、分享的相关组件,详情参考
复制指定平台的libs和res到项目中
每个平台对应的jar包和资源文件,详情参考
在代码中设置需要分享的平台和内容
传递平台appId/appKey参数并添加指定平台和分享的媒体内容
使用第三方登录的时候需要进行签名打包,不然在新浪SSO授权、微信分享会出现异常。
微信登录需要在微信开放平台申请开发者认证获取登录权限,不然无法完成授权
微信扫描一下,
关注我们!移动开发者服务平台
> 用户反馈 > 用户反馈Android文档 > 集成文档
友盟用户反馈SDK帮助开发者和用户进行直接的沟通和交流。
Android 用户反馈自4.3以后的版本在结构上有重大更新,集成接口也有变化。 提供给开发者更多的自定义灵活性。如果您集成过老版本的反馈SDK, 请先卸载老版本SDK, 将对应集成代码删除。
友盟用户反馈SDK使用了Android Support Library, 所以请添加最新版本 android-support-v4.jar 到工程的libs目录下。请确认 android-support-v4.jar 的版本在 21.0.0 以上,否则,会出现 java.lang.NoSuchMethodError 的错误。如果你不能通过Android SDK Mananger下载, 可以在下载jar包.
Android Studio用户
添加代码到project下的build.gradle文件中:
repositories {
maven { url "/umeng/mvn-repo-umeng/master/repository" }
然后在module下的build.gradle文件中添加依赖即可:
dependencies {
compile 'com.umeng:fb:5.4.0'
compile 'com.android.support:support-v4:21.+'
Android Studio用户除了可以使用以上方法集成SDK外,也可以使用和Eclipse用户相同的方法来集成SDK。
Eclipse用户
下载最新版SDK的zip包,解压后将其中的libs目录下内容合并到本地工程libs目录,如果本地没有libs目录,创建一个。
将SDK提供的res文件夹拷入工程目录下, 和工程本身res目录合并。您可以更改资源内容但是请不要更改文件名和资源ID。
友盟用户反馈SDK提供的资源文件都以umeng_fb_开头。
注:友盟用户反馈SDK使用了Android Support Library, 所以请添加最新版本 android-support-v4.jar 到工程的libs目录下。
配置 AndroidManifest.xml
打开"AndroidManifest.xml", 在&application&标签中添加Activity, APPKEY, 和权限,注意替换其中的"YOUR_APP_KEY" 和"Channel ID"。
&manifest&
&application&
android:name="com.umeng.fb.ConversationActivity"/&
&meta-data
android:value="YOUR_APP_KEY"
android:name="UMENG_APPKEY"/&
&meta-data
android:value="Channel ID"
android:name="UMENG_CHANNEL"/&
&/application&
&uses-sdk android:minSdkVersion="9"/&
&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" /&
&/manifest&
请参考SDK 下载包中的example 工程代码: example/src/main/java/com/umeng/fb/example/MainActivity.java 文件。
基础功能设置
代码中启用反馈模块,调用下面函数进入反馈界面:
FeedbackAgent agent = new FeedbackAgent(context);
agent.startFeedbackActivity();
附加功能设置
设置新回复通知
当开发者回复用户反馈后,如果需要提醒用户,请在应用程序的入口Activity的OnCreate()方法中下添加以下代码
agent.sync();
若调用该接口,反馈模块将在你程序启动后在后台检查是否有新的来自开发者的回复。 若有,我们将在通知栏提醒用户,若无,则不会打扰用户。你也可以选择不调用该接口,这样我们会在用户进入反馈界面后,再去检查是否存在新的回复。
如果你希望改变默认通知方式, 可以使用接口
Conversation conversation = agent.getDefaultConversation();
conversation.sync(listener);
详细设置可参考example工程中相应代码。
修改反馈页面默认欢迎语
要想修改反馈页面默认欢迎语,可以修改res/layout/umeng_fb_welcome_item.xml 文件,找到id为umeng_fb_welcome_info的TextView,修改该TextView的android:text属性。也可以通过agent.setWelcomeInfo("welcome info");在java代码中设置,不设置参数则显示默认欢迎语。
如果不希望在会话界面展示欢迎语,可以调用agent.removeWelcomeInfo();方法,取消欢迎语。
使用Fragment自定义反馈界面
如果需要自定义反馈会话界面,可使用SDK提供的Fragment,将FeedbackFragment添加到Activity中。使用方法参看example工程文件example/src/main/java/com/umeng/fb/example/ConversationDetailActivity.java,使用时请注意FeedbackFragment.BUNDLE_KEY_CONVERSATION_ID参数的传递。此参数表示反馈会话对应的id。示例代码:
String conversation_id = getIntent().getStringExtra(FeedbackFragment.BUNDLE_KEY_CONVERSATION_ID);
mFeedbackFragment = FeedbackFragment.newInstance(conversation_id);
getSupportFragmentManager().beginTransaction()
.add(R.id.container,mFeedbackFragment)
.commit();
设置用户信息
参考如下代码:
UserInfo info = agent.getUserInfo();
if (info == null)
info = new UserInfo();
Map&String, String& contact = info.getContact();
if (contact == null)
contact = new HashMap&String, String&();
String contact_info = contactInfoEdit.getEditableText()
.toString();
contact.put(KEY_UMENG_CONTACT_INFO_PLAIN_TEXT, contact_info);
contact.put("email", "*******");
//contact.put("qq", "*******");
//contact.put("phone", "*******");
//contact.put("plain", "*******");
info.setContact(contact);
// optional, setting user gender information.
info.setAgeGroup(1);
info.setGender("male");
//info.setGender("female");
agent.setUserInfo(info);
new Thread(new Runnable() {
public void run() {
boolean result = fb.updateUserInfo();
}).start();
提示:更新用户信息需要异步操作
age_group 参考。 有效值1-8.
&string-array name="age_group_list"&
&item&Age&/item&
&item&&18&/item&
&item&18~24&/item&
&item&25~30&/item&
&item&31~35&/item&
&item&36~40&/item&
&item&41~50&/item&
&item&51~59&/item&
&item&&=60&/item&
&/string-array&
反馈推送功能设置
使用反馈推送功能之前,需要到友盟消息推送后台( )开启友盟消息推送功能,否则会影响使用。
下载友盟消息推送SDK,并将jar包导入项目。按照友盟消息推送SDK集成文档增加对AndroidManifest.xml文件的配置,文档地址:
Android Studio用户不用手动下载友盟消息推送SDK,在module下的build.gradle文件中添加依赖即可:
dependencies {
compile 'com.umeng:message:2.4.1'
在应用主Activity的onCreate()方法中开启反馈回复推送服务,同时开启友盟消息推送服务。
agent.openFeedbackPush();
PushAgent.getInstance(this).enable();
开启反馈推送功能后,开发者的回复将会被实时推送到应用。开发者实现分为三种场景,开发者应按照相应场景进行设置:
◆ 场景一 : 在应用中只集成了友盟用户反馈SDK,没有集成友盟消息推送SDK,或同时集成了两个SDK,但没有使用友盟消息推送自定义消息
在Application的onCreate()方法中调用下面的方法初始化反馈推送的相关设置,参数为false。example:
FeedbackPush.getInstance(this).init(false);
在配置文件AndroidManifest.xml中设置自己实现的Application。
◆ 场景二 : 在应用中同时集成了友盟用户反馈SDK和友盟消息推送SDK,且使用友盟消息推送自定义消息
在Application的onCreate()方法中调用下面的方法初始化反馈推送的相关设置,参数为true。
FeedbackPush.getInstance(this).init(true);
在配置文件AndroidManifest.xml中设置自己的Application。
按照友盟消息推送SDK集成文档说明,重写友盟消息推送SDK提供的消息处理类UmengMessageHandler的dealWithCustomMessage(Context context, UMessage msg)方法,在该方法中的第一行调用dealFBMessage(UMessage msg)方法,如果返回为false,开发者可继续处理该非反馈推送消息,如果为true,开发者应直接退出该方法,即 。
mMessageHandler = new UmengMessageHandler() {
public void dealWithCustomMessage(Context context, UMessage msg) {
if (FeedbackPush.getInstance(context).dealFBMessage(new FBMessage(msg.custom))) {
//此推送消息非开发者回复消息,开发者可以继续处理该消息
/*************** 其他操作 ***************/
◆ 场景三 : 在应用中同时集成了友盟用户反馈SDK和友盟消息推送SDK,使用完全自定义消息
按照友盟消息推送SDK集成文档说明,重写友盟消息推送SDK提供的UmengBaseIntentService类中的onMessage(Context context, Intent intent)方法,在调用super.onMessage(context, intent);之后,调用onFBMessage(Intent intent)方法,如果onFBMessage(Intent intent)方法返回为false,开发者可继续处理该非反馈推送消息,如果为true,开发者应直接退出该方法,即。example :
protected void onMessage(Context context, Intent intent) {
super.onMessage(context, intent);
if (FeedbackPush.getInstance(context).onFBMessage(intent)) {
//此推送消息非开发者回复消息,开发者可以继续处理该消息
/*************** 其他操作 ***************/
提示:使用友盟推送完全自定义消息需要在AndroidManifest.xml中设置自己实现的service
开发者如果使用FeedbackFragment自定义反馈会话界面则应将调用init(true)改为调用重载的init(Class&?& cls,boolean
isCustom)方法,参数cls为自定义的Activity。
FeedbackPush.getInstance(this).init(ConversationActivity.class, true);
在自定义的Activity中覆写onNewIntent()方法,在onNewIntent()调用以下方法:
mFeedbackFragment.refresh();
提示:其他涉及到友盟消息推送SDK的地方均可按照友盟消息推送SDK的要求来编写代码。
语音反馈功能
首先请确保已经将libumeng_opustool.so加入本地工程,如果还没有加入,可以把解压SDK下载包得到的libs目录下的内容合并到本地工程libs目录。然后在AndroidManifest.xml文件中加入录音权限:
&uses-permission android:name="android.permission.RECORD_AUDIO" /&
即可使用语音反馈功能,如果不想使用该功能,可通过调用 agent.closeAudioFeeback() 方法来关闭语音反馈功能,也可以直接删除工程中的 libumeng_opustool.so 文件来关闭该功能。
提示: so 动态库包含arm、arm-v7a、mips、x86 四种架构,对于普通Android 手机开发者,如果不需要支持特殊机型,只需引入arm 架构so 动态库即可。
从v4.3版本开始, 用户反馈SDK 提供更为底层的接口供开发者定制。
用户反馈中开发者和用户之间的对话通过会话 (com.umeng.fb.model.Conversation) 类来实现。 用户或者开发者的每一条回复是Reply。
我们建议在客户端使用单会话模式. 使用FeedbackAgent.getDefaultConversation();函数获取默认的Conversation。
然后开发者可以向Conversation中添加用户回复(Reply) con.addUserReply("user reply content here");
Conversation会自动保存在本地SharedPreferences 当中。可以通过Conversation.sync()方法将本地内容和服务器同步。 这是一个异步方法。 传入参数com.umeng.fb.SyncListener. 实现回调接口, 从而当网络操作完成时, 可以更新UI中的元素。
如果SDK 中提供的默认UI 不能满足您的需求, 您可以参考SDK中的UI源代码利用SDK提供的数据API实现自己的界面自定义需求。
sync的时候报错,java.lang.NoClassDefFoundError: android.support.v4.app.NotificationCompat$Builder, 如何解决?
05-30 14:25:24.175: E/AndroidRuntime(21578): java.lang.NoClassDefFoundError: android.support.v4.app.NotificationCompat$Builder
05-30 14:25:24.175: E/AndroidRuntime(21578):
at com.umeng.fb.FeedbackAgent.a(FeedbackAgent.java:115)
05-30 14:25:24.175: E/AndroidRuntime(21578):
at com.umeng.fb.FeedbackAgent.a(FeedbackAgent.java:21)
这是support library 的一个bug, 详情请参考: .
解决方案: 更新android.support.v4.jar 到最新版本。 在Eclipse 中, 鼠标右击工程, Android Tools -& Add Support Library, 或者手动从官方网站下载最新的jar放到工程的libs目录下。 Gradle 用户直接把依赖设为最新版本。
跳转到用户反馈界面时报错,java.lang.NoClassDefFoundError: com.umeng.fb.ConversationActivity,如何解决?
AndroidRuntime: java.lang.NoClassDefFoundError: com.umeng.fb.ConversationActivity
AndroidRuntime:
at com.umeng.fb.FeedbackAgent.startFeedbackActivity(FeedbackAgent.java:166)
这是没有添加android.support.v4.jar的原因,如果已经添加了android.support.v4.jar,请确保已经添加到Build Path中。
-keepclassmembers class * {
public &init&(org.json.JSONObject);
#把[您的应用包名] 替换成您自己的包名,如"com.example.R$*"。
-keep public class 您的应用包名.R$*{
public static final int *;
# 如"com.example.R$*"
-keep public class com.example.R$*{
public static final int *;
如果是从老版本SDK 升级到新版本, 遇到问题,建议先将老版本的SDK jar包和资源文件先删除,再重新添加新SDK 需要的jar 和资源文件。
为了能够尽快响应您的反馈,请提供您的appkey及logcat中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。

我要回帖

更多关于 android 友盟强制更新 的文章

 

随机推荐