Android 友盟统计 友盟推送 友盟分享快速集成
一.友盟统计
1.首先需要到友盟官网 http://mobile.umeng.com/apps注册并且添加新应用,获得Appkey
2.导入SDK,新版SDK支持Android 6.0,http://download.csdn.net/download/a704755096/9676752
如果是Android Studio:在Gradle依赖中添加:
dependencies {compile 'com.umeng.analytics:analytics:latest.integration'
}
如果无法正常集成请添加如下代码 :
allprojects { repositories { mavenCentral() }}
3.配置xml
<manifest……>
<uses-sdk android:minSdkVersion="8"></uses-sdk>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application ……>
……
<activity ……/>
<meta-data android:value="xxx" android:name="UMENG_APPKEY"/>
<meta-data android:value="xxx" android:name="UMENG_CHANNEL"/>
</application>
</manifest>
4.添加代码,主入口文件调用 MobclickAgent.setCatchUncaughtExceptions(true); //要发送错误统计为true
在每个Activity的onResume方法中调用 MobclickAgent.onResume(Context)
,
在每个Activity的onPause方法中调用 MobclickAgent.onPause(Context)
public void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
小技巧:6.0获取设备信息有变,当xml中的 targetSdkVersion<23时候, 可以正常获取信息(相当于跳过了6.0权限检查)。。到此基本功能已经完成……
二.友盟推送
1.首先需要到友盟官网 http://push.umeng.com注册并且添加新应用,用包名添加应用时获得的AppKey和Umeng Message Secret替换掉PushDemo下的AndroidManifest.xml中的默认的AppKey和Umeng Message Secret
2.导入PushSDK,新版SDK支持Android 6.0,http://download.csdn.net/download/a704755096/9676752
PushSDK 3.0 libs默认只提供armeabi和x86两种so文件夹,若主工程中的so文件夹与PushSDK下的so文件夹不一致,则可以添加缺少的so文件夹至 PushSDK下libs,或删除PushSDK libs下多余的so文件夹,必须使PushSDK libs的so文件夹与主工程的so文件夹保持一致。
如果是Android Studio:在Gradle依赖中添加:
- 在Application Module的build.gradle文件的
dependencies
下添加compile project(':PushSDK')
。 - 请确保Application Module的build.gradle文件中的
applicationId
与应用包名package
一致。
3.配置xml,把PushSDK目录下的AndroidManifest.xml
中的${applicationId}
替换成为自己项目的包名。
<manifest……>
<uses-sdk android:minSdkVersion="8"></uses-sdk>
…… <activity ……/> <meta-data android:value="xxx" android:name="UMENG_APPKEY"/><meta-data android:value="xxx" android:name="UMENG_CHANNEL"/>
<meta-data android:value="xxx" android:name="UMENG_MESSAGE_SECRET"/> </application> </manifest>
4.添加代码,主入口文件调用
在工程的Application类的 onCreate()
方法中注册推送服务,无论推送是否开启都需要调用此方法:
PushAgent mPushAgent = PushAgent.getInstance(this);//mPushAgent.setDebugMode(false);//如果app对外正式发布设为false
//注册推送服务,每次调用register方法都会回调该接口
mPushAgent.register(new IUmengRegisterCallback() {@Overridepublic void onSuccess(String deviceToken) {//注册成功会返回device token}@Overridepublic void onFailure(String s, String s1) {}
});
mPushAgent.setNotificationClickHandler(UmengNotificationClickHandler);//自定义点击事件监听
//mPushAgent.setMessageHandler(UHandler);//自定义消息处理,设置后不会收到默认通知
//mPushAgent.setPushIntentServiceClass(MyPushIntentService);//完全自定义通知设置,设置后不会收到默认通知
如需手动获取device token,可以调用 mPushAgent.getRegistrationId()
方法(需在注册成功后调用);
免打扰模式,如23:00-7:00:mPushAgent.setNoDisturbMode(23,0,7,0);//关闭免打扰模式设为0,0,0,0
在所有的Activity 的onCreate
方法或在应用的BaseActivity
的onCreate
方法中添加:
PushAgent.getInstance(context).onAppStart();
到此基本功能已经完成……
三.友盟分享 登录
1.首先需要到友盟官网 http://mobile.umeng.com/social注册并且添加新应用,获得Appkey
2.导入SDK,Android 社会化组件SDK v5.1.3(2016-6-6)http://dev.umeng.com/social/android/sdk-download
对应jar包名字对应如下:新浪精简版,不再需要.so文件
平台 | 完整版(老版) | 精简版(新版) |
---|---|---|
main | umeng_social_sdk.jar |
umeng_social_apiv6.0.0.jar umeng_social_netv6.0.0.jar umeng_social_viewv6.0.0.jar |
mta-sdk-1.6.2.jar open_sdk_r5756_lite.jar SocialSDK_QQZone_3.jar |
SocialSDK_umengqq.jar SocialSDK_QQZone_3.jar |
|
sina |
SocialSDK_Sina.jar weiboSDKCore_3.1.4.jar libweibosdkcore.so |
SocialSDK_umengsina.jar |
微信 |
SocialSDK_WeiXin_1.jar SocialSDK_WeiXin_2.jar |
SocialSDK_umengwx.jar SocialSDK_WeiXin_2.jar |
3.配置xml
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
4.添加代码 ,主入口文件调用
public class App extends Application{
{PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");//微信PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad");//新浪微博PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");//QQ空间
Config.REDIRECT_URL = "在新浪后台的回调地址"
}
}
UMImage image = new UMImage(this, "imgURL");new ShareAction(this).setDisplayList(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE).withTitle("标题").withText("内容").withMedia(image).withTargetUrl("http://www.xx.com").setCallback(umShareListener)//.withShareBoardDirection(view, Gravity.TOP|Gravity.LEFT).open();//打开分享
private UMShareListener umShareListener = new UMShareListener() {@Overridepublic void onResult(SHARE_MEDIA platform) {
// Log.d("plat","platform"+platform);if(platform.name().equals("WEIXIN_FAVORITE")){Toast.makeText(this,platform + " 收藏成功啦",Toast.LENGTH_SHORT).show();}else{Toast.makeText(this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();}}@Overridepublic void onError(SHARE_MEDIA platform, Throwable t) {Toast.makeText(this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();if(t!=null){
// Log.d("throw","throw:"+t.getMessage());}}@Overridepublic void onCancel(SHARE_MEDIA platform) {Toast.makeText(this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();}};
友盟登录 UMShareAPI mShareAPI = UMShareAPI.get( this );
SHARE_MEDIA platform=SHARE_MEDIA.WEIXIN;//微信登录if(!mShareAPI.isInstall(this, platform)){//ToastUtils.setToast(this, false, "还没有安装");return;}/**添加begin invoke umeng api**/mShareAPI.doOauthVerify(this, platform, umAuthListener);/**删除begin invoke umeng api**/
// mShareAPI.deleteOauth(this, platform, umdelAuthListener);
private UMAuthListener umAuthListener = new UMAuthListener() {@Overridepublic void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {Log.e("auth callback","-----------------getting data:"+data);Toast.makeText(getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();if(data!=null&&data.containsKey("access_token")&&data.containsKey("openid")&&data.containsKey("unionid")){String access_token=data.get("access_token").trim();//...mShareAPI.getPlatformInfo(this, platform, umAuthListener);//获取用户信息 }if(data!=null&&data.containsKey("nickname")&&data.containsKey("headimgurl")){}}@Overridepublic void onError(SHARE_MEDIA platform, int action, Throwable t) {Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();}@Overridepublic void onCancel(SHARE_MEDIA platform, int action) {Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();}};
注意以下---------------------------------------------------------------------------------------------------------------------------------------------------------
import com.umeng.socialize.weixin.view.WXCallbackActivity;
/*** Created by ntop on 15/9/4.*/
public class WXEntryActivity extends WXCallbackActivity {}
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);/** attention to this below ,must add this**/UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);//有分享或登录时调用}
到此基本功能已经完成……
来源http://blog.csdn.net/a704755096/article/details/46341865
Android 友盟统计 友盟推送 友盟分享快速集成相关推荐
- 阿里云推送 AndroidSDK 3.0 快速集成
文章目录 0.控制台中配置好产品应用 1. 基础接入配置使用 1.1配置根目录的 build.gradle文件 1.2配置要接入module的build.gradle文件 1.3配置清单文件 2. 接 ...
- 关于Android安卓APP保活 - 安卓消息推送详解 - 安卓端外推送离线推送
转自:http://zhangtielei.com/posts/blog-android-push.html 说Android端外推送比较烦,实际有两层意思:首先是说实现上比较麻烦,至今业界也没有找到 ...
- 魅族android10内侧,魅族迎来Android 10内测版更新 首批推送两款机型
中关村在线消息:Flyme成立8周年之际,就曾宣布除魅族17系列之外,基于Android 10的Flyme将再适配10款机型,并于7月21日推送内测版本,首批机型包括16s Pro.16s两款机型. ...
- android9谷歌推送,谷歌Android 9.0系统将统一推送以改善更新碎片化
原标题:谷歌Android 9.0系统将统一推送以改善更新碎片化 玩懂手机网消息,Android和iOS一直是用户眼中两种不同的代名词,Android非常开放,是高度可定制的操作系统,设备制造商还是开 ...
- android融云消息提示,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人在嵌入融云SDK之后,遇到过Android手机收不到消息推送问题.下面来给大家一些干货.解决Android类手机收不到消息推送的解决方法.供大家参考 ...
- 融云 android 推送图标,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人在嵌入融云SDK之后,遇到过Android手机收不到消息推送问题.下面来给大家一些干货.解决Android类手机收不到消息推送的解决方法.供大家参考 ...
- android 杀死程序收不到推送_Android APP切换到后台接收不到推送消息
1. Android端进程被杀死后,目前自带的保护后台接收消息活跃机制.暂时没有什么好的机制保持任何情况下都活跃 android原生系统用home键杀进程可以起来,如果是强行停止就只能用户自己手动 ...
- android 融云消息推送,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人在嵌入融云SDK之后,遇到过Android手机收不到消息推送问题.下面来给大家一些干货.解决Android类手机收不到消息推送的解决方法.供大家参考 ...
- android手机收不到推送消息推送消息,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人在嵌入融云SDK之后,遇到过Android手机收不到消息推送问题.下面来给大家一些干货.解决Android类手机收不到消息推送的解决方法.供大家参考 ...
最新文章
- 使用C++实现一套简单的状态机模型——实例
- 李飞飞入选美国国家医学科学院,她用AI改变了医疗
- matlab preloadfcn,simulink中打不开SysytemGenerator?返回错误Error evaluating ...
- 理解ffmpeg中的pts,dts,time_base
- 通过实验取证:TCP三次握手的过程
- 安装elasticsearch-analysis-ik中文分词器
- R语言观察日志(part13)--从GitHub中下载R包
- 初级算法-12.反转字符串
- Network of Schools(POJ-1236)
- linux 设置开机启动
- android 编译faac,faac 移植到android
- mariadb不支持load data_不修改代码打包python机器学习工程
- 各自然带代表植被_景观学习 | 消落带的景观设计
- vs2017+pcl1.8.1配置
- java excel 冻结_Java 冻结或解除冻结Excel中的行和列
- 红鸟网络:棋牌游戏开发运营,细分领域是关键
- Word2010经常莫名其妙无法撤销
- 有妇如此,夫复何求!
- Azure核心服务(VM)——>创建windows虚拟机并在此之上部署一个cms网站
- 今日头条python_GitHub - a57571735/headlines_today: 基于Python的爬取今日头条文章及视频...