package com.example.umeng_01;
import android.Manifest;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.umeng.analytics.MobclickAgent;
import com.umeng.message.PushAgent;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
public class MainActivity extends AppCompatActivity {
private Button fenXiangButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fenXiangButton = (Button) findViewById(R.id.fenXiang_button);
PushAgent.getInstance(this).onAppStart();
if(Build.VERSION.SDK_INT>=23){
String[] mPermissionList = new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.CALL_PHONE,
Manifest.permission.READ_LOGS,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.SET_DEBUG_APP,
Manifest.permission.SYSTEM_ALERT_WINDOW,
Manifest.permission.GET_ACCOUNTS,
Manifest.permission.WRITE_APN_SETTINGS};
ActivityCompat.requestPermissions(this,mPermissionList,123);
fenXiangButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
UMImage umImage = new UMImage(MainActivity.this, R.mipmap.h1);
new ShareAction(MainActivity.this).withText("hello").withMedia(umImage).setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
.setCallback(shareListener).open();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
private UMShareListener shareListener = new UMShareListener() {
* @descrption 分享开始的回调
* @param platform 平台类型
@Override
public void onStart(SHARE_MEDIA platform) {
* @descrption 分享成功的回调
* @param platform 平台类型
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this,"成功了",Toast.LENGTH_LONG).show();
* @descrption 分享失败的回调
* @param platform 平台类型
* @param t 错误原因
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(MainActivity.this,"失败"+t.getMessage(),Toast.LENGTH_LONG).show();
* @descrption 分享取消的回调
* @param platform 平台类型
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this,"取消了",Toast.LENGTH_LONG).show();
@Override
public void onResume() {
super.onResume();
MobclickAgent.onResume(this);
@Override
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);
package com.example.umeng_01;
import android.app.Application;
import android.util.Log;
import com.umeng.commonsdk.UMConfigure;
import com.umeng.message.IUmengRegisterCallback;
import com.umeng.message.PushAgent;
import com.umeng.socialize.PlatformConfig;
public class App extends Application {
private static final String TAG = "App";
@Override
public void onCreate() {
super.onCreate();
UMConfigure.init(this,"5d5a45290cafb24faa0002f9"
,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"d0a324a3dcfcf41a308cad231183c5d7");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
//豆瓣RENREN平台目前只能在服务器端配置
PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com");
PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
PlatformConfig.setAlipay("2015111700822536");
PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
PlatformConfig.setPinterest("1439206");
PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
PlatformConfig.setVKontakte("5764965","5My6SNliAaLxEm3Lyd9J");
PlatformConfig.setDropbox("oz8v5apet3arcdy","h7p2pjbzkkxt02a");
//获取消息推送代理示例
PushAgent mPushAgent = PushAgent.getInstance(this);
//注册推送服务,每次调用register方法都会回调该接口
mPushAgent.register(new IUmengRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
//注册成功会返回deviceToken deviceToken是推送消息的唯一标志
Log.i(TAG,"注册成功:deviceToken:--------> " + deviceToken);
//AhSIA-Oun40umYdYQWstztk3yYDJe2euH0_g-bXqbNap
@Override
public void onFailure(String s, String s1) {
Log.e(TAG,"注册失败:--------> " + "s:" + s + ",s1:" + s1);
友盟的介绍友盟是一个可以给我们提供分享功能的接口和推送消息方法。首先友盟也是第三方的软件来给我们提供接口的,需要去注册开发者的账号,然后获取对应的key值才可以使用,大部分的使用方法都在官网上可以找到,大部分代码都是去复制的。然后分享就是获取到对应APP软件的分享接口,通过友盟里面给我们提供的接口来调用就可以了。推送是通过电脑上友盟官网上开发者来发送一条消息到手机上。代码MainAct...
本文来自 Serverless 社区用户「乂乂又又」投稿
我最早接触 Serverless 大概是在 18 年 6 月,那时候我在阿里云的学生机刚好到期,那台机子上我有装宝塔面板,然后在上面只放了一个 Typecho 的个人博客站,好像这台服务器似乎一直都是被我拿来当作虚拟主机用,最多也只是登上宝塔面板清一下内存这样子,所以,在我阿里云一年的学生机到期之后,我就果断选择了放弃续费服务器。从那时起我就变成了一个彻底的 Severlesser。
首先是之前的静态网页的问题,这个解决起来比较简单,随便找
很多开发者都有这样的疑问:应用内社区究竟能够将 App 的用户留存率提升多少?
在日前友盟开放日深圳站中,友盟微社区产品负责人陆义元给出了答案:通过有效的社区运营能够将次日留存提升最少 5%,最高达到 40 %。
为什么越来越多的人关注在 App 内搭建社区?以女性健康管理类 App 大姨吗为例,用户停留时间短、使用频率低,导致用户留...
虽然在使用友盟的统计分析工具,可是你真的用熟了么?是不是还经常会遇到问题。就比如在渠道使用方面,你知道下边的这几个知识点么,我猜,没准儿你真的不知道。不服来看看。
1、添加渠道只能在mainfest里设置?
当然不是,除了在mainfest通过来设置渠道ID,你还可以在Activity中配置,只需在程序启动时的Activity中调用此接口:AnalyticsConfig.setChannel(
链接:https://www.zhihu.com/question/20781136/answer/32315303
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
讨论数据准不准,先看统计原理和标准。有兴趣的开发者可以查看这篇文档友盟移动应用统计的基本原理及
友盟UMID 方案解析
下面再具体分析几个开发者口中常见的“不准”
本项目旨在利用深度学习方法实现作物病害的自动诊断。作物病害是农业生产中的重要问题,及时诊断和处理对于减少产量损失至关重要。
我们采用深度学习算法,通过分析作物的图像,实现对病害的自动识别和分类。项目
使用的数据集包括公开的作物病害图像数据集,如ISIC等,并进行了预处理,包括图像增强、分割和特征提取等。
在运行环境方面,我们
使用Python编程语言,基于TensorFlow、PyTorch等深度学习框架进行开发。为了提高计算效率,我们还
使用了GPU加速计算。此外,我们还采用了Docker容器技术,确保实验结果的可重复性。
项目完成后,将实现对作物病害的快速、准确诊断,为农业生产提供有力支持,有助于减少产量损失。同时,项目成果也可应用于其他图像识别和分类任务。
友盟是一个移动统计和推广平台,提供了一系列的SDK供开发者使用。在Java中使用友盟可以通过以下步骤:
1. 注册并登录友盟开发者后台,创建应用并获取Appkey。
2. 下载并集成友盟的SDK到你的项目中。
3. 在你的代码中初始化友盟SDK,例如:
UMConfigure.init(this, appKey, channel, UMConfigure.DEVICE_TYPE_PHONE, "");
其中,`appKey`是你在第一步中获取的Appkey,`channel`是应用发布的渠道。
4. 根据需要,使用友盟提供的功能,例如数据统计、推送等。具体使用方式可以参考友盟官方文档。
需要注意的是,友盟SDK需要在Android项目中使用,而不是Java项目中使用。如果你的Java项目需要使用友盟提供的功能,可以考虑使用相关的API接口或者其他的SDK。