安卓学习笔记---友盟分享的坑

来源:互联网 发布:java 文件上传过程 编辑:程序博客网 时间:2024/05/21 18:42

这几天需要做分享,一开始使用的是ShsreSDK分享,基本也已加入项目中,但是老板说使用友盟分享,那就改呗,从此在坑的道路上越走越远

1.首先是进入友盟官网去申请账号:http://mobile.umeng.com/social

2.当然是要去第三方的网站去申请了,微信,QQ,新浪

然后我再微信的应用签名那里就遇到了坑,需要上传一个应用签名和包名,签名我以为是SHA1,其实是MD5啊!!!怪不得老板告诉我已经申请好了,但是我这里还是不能调起微信分享,是自己理解错了!!!

我使用的是AndroidStudio,如果要生成签名,可以看一下这篇文章:

安卓学习笔记---Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值

http://blog.csdn.net/juhua2012/article/details/74943519

还有就是当你重新修改了签名在微信平台上之后,是可以立即生效的,但是你或许应该先把微信卸载,在重新安装一下,因为可能会有缓存,导致新的签名不能生效,可以看一下这篇文章

微信支付应用签名写错修改会立即生效和后面的坑

http://jingyan.baidu.com/article/03b2f78c0f8fec5ea237aeb6.html

3.下面就是去官网下载sdk以及需要的一些文件了

http://dev.umeng.com/social/android/quick-integration#3_2  这个是步骤,可以一步一步跟着做

现在的友盟进行了更新,和原来的不太一样了

下载sdk之后,解压出现的目录如下


记得要把标注的文件夹里面的所有内容都复制到项目中去,按照官网说的,但是运行之后,发现少了一些jar包或者文件,全部复制进去之后就好,在这部分也遇到了坑,全部复制进去之后,项目的目录基本如下:



4. AndroidManifest.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.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /><application   android:name=".BaseApplication"    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:supportsRtl="true"    android:theme="@style/AppTheme">    <activity android:name=".MainActivity">        <intent-filter>            <action android:name="android.intent.action.MAIN" />            <category android:name="android.intent.category.LAUNCHER" />        </intent-filter>    </activity>    <!--分享相关-->    <meta-data        android:name="UMENG_APPKEY"        android:value="在友盟官网创建应用获得的appkey" >    </meta-data>    <!--新浪-->    <activity        android:name=".WBShareActivity"        android:configChanges="keyboardHidden|orientation"        android:screenOrientation="portrait" >        <intent-filter>            <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />            <category android:name="android.intent.category.DEFAULT" />        </intent-filter>    </activity>    <activity        android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"        android:configChanges="keyboardHidden|orientation"        android:windowSoftInputMode="adjustResize"        android:exported="false" >    </activity>    <service android:name="com.sina.weibo.sdk.net.DownloadService"        android:exported="false"></service>    <!--微信-->    <activity        android:name=".wxapi.WXEntryActivity"        android:configChanges="keyboardHidden|orientation|screenSize"        android:exported="true"        android:screenOrientation="portrait"        android:theme="@android:style/Theme.Translucent.NoTitleBar" />    <!--QQ-->    <activity        android:name="com.tencent.tauth.AuthActivity"        android:launchMode="singleTask"        android:noHistory="true" >        <intent-filter>            <action android:name="android.intent.action.VIEW" />            <category android:name="android.intent.category.DEFAULT" />            <category android:name="android.intent.category.BROWSABLE" />            <data android:scheme="tencent100424468" />        </intent-filter>    </activity>    <activity        android:name="com.tencent.connect.common.AssistActivity"        android:screenOrientation="portrait"        android:theme="@android:style/Theme.Translucent.NoTitleBar"        android:configChanges="orientation|keyboardHidden|screenSize"/></application>

5.里面有一句

 android:name=".BaseApplication",创建这个BaseApplication,基本内容如下
public class BaseApplication extends Application {    static {        PlatformConfig.setWeixin("wx555cfv6666fgtgfvdfc1577cd", "axasxasxhjasx6u67i78q223237i89a9f51638");        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");        PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com");    }    @Override    public void onCreate() {        super.onCreate();        UMShareAPI.get(this);    }}

根据从不同的平台得到的,进行替换即可

6.下面附上自己写的

/** * 友盟分享接入 * http://dev.umeng.com/social/android/share-detail */public class MainActivity extends AppCompatActivity {    private Context context;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        context=MainActivity.this;        //Config.DEBUG = true;        findViewById(R.id.btn_share).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {               // UmengTool.checkWx(MainActivity.this);                                //设置分享图片                UMImage image = new UMImage(MainActivity.this, "imageurl");//网络图片                //推荐使用网络图片和资源文件的方式,平台兼容性更高。 对于微信QQ的那个平台,分享的图片需要设置缩略图,缩略图的设置规则为:                UMImage thumb =  new UMImage(MainActivity.this, R.drawable.thumb);                image.setThumb(thumb);                //用户设置的图片大小最好不要超过250k,缩略图不要超过18k,如果超过太多(最好不要分享1M以上的图片,压缩效率会很低),图片会被压缩。 用户可以设置压缩的方式:                // 压缩格式设置:                image.compressStyle = UMImage.CompressStyle.SCALE;//大小压缩,默认为大小压缩,适合普通很大的图               // image.compressStyle = UMImage.CompressStyle.QUALITY;//质量压缩,适合长图的分享               // image.compressFormat = Bitmap.CompressFormat.PNG;//用户分享透明背景的图片可以设置这种方式,但是qq好友,微信朋友圈,不支持透明背景图片,会变成黑色                //设置分享链接                //分享链接可以使用UMWeb进行分享:                //注意在新浪平台,缩略图属于必传参数,否则会报错                UMWeb web = new UMWeb("http://www.baidu.com");                web.setTitle("连接标题");//标题                web.setThumb(thumb);  //缩略图                web.setDescription("描述");//描述                new ShareAction(MainActivity.this).withText("分享内容")//分享内容                        .withMedia(image)//分享图片                        .withMedia(web) //分享链接                        .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.QZONE,SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE)                        .setCallback(umShareListener).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 umShareListener = new UMShareListener() {        @Override        public void onStart(SHARE_MEDIA platform) {            //分享开始的回调        }        @Override        public void onResult(SHARE_MEDIA platform) {            Log.d("plat","platform"+platform);            if(SHARE_MEDIA.SINA.equals(platform))            {                Toast.makeText(context, " 新浪微博分享成功啦", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.QQ.equals(platform))            {                Toast.makeText(context," QQ分享成功啦", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.QZONE.equals(platform))            {                Toast.makeText(context," QQ空间分享成功啦", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.WEIXIN.equals(platform))            {                Toast.makeText(context," 微信分享成功啦", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.WEIXIN_CIRCLE.equals(platform))            {                Toast.makeText(context," 朋友圈分享成功啦", Toast.LENGTH_SHORT).show();            }        }        @Override        public void onError(SHARE_MEDIA platform, Throwable t) {            if(SHARE_MEDIA.SINA.equals(platform))            {                Toast.makeText(context," 新浪微博分享失败啦", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.QQ.equals(platform))            {                Toast.makeText(context," QQ分享失败啦", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.QZONE.equals(platform))            {                Toast.makeText(context," QQ空间分享失败啦", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.WEIXIN.equals(platform))            {                Toast.makeText(context," 微信分享失败啦", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.WEIXIN_CIRCLE.equals(platform))            {                Toast.makeText(context," 朋友圈分享失败啦", Toast.LENGTH_SHORT).show();            }            if(t!=null){                Log.d("throw","throw:"+t.getMessage());            }        }        @Override        public void onCancel(SHARE_MEDIA platform) {            if(SHARE_MEDIA.SINA.equals(platform))            {                Toast.makeText(context," 新浪微博分享取消了", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.QQ.equals(platform))            {                Toast.makeText(context," QQ分享取消了", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.QZONE.equals(platform))            {                Toast.makeText(context," QQ空间分享取消了", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.WEIXIN.equals(platform))            {                Toast.makeText(context," 微信分享取消了", Toast.LENGTH_SHORT).show();            }else if(SHARE_MEDIA.WEIXIN_CIRCLE.equals(platform))            {                Toast.makeText(context," 朋友圈分享取消了", Toast.LENGTH_SHORT).show();            }        }    };    @Override    protected void onDestroy() {        super.onDestroy();        UMShareAPI.get(this).release();//防止内存泄漏    }}
注意:
 Config.DEBUG = true;这个是可以在DEBUG下可以看到一些分享的输出,便于查看
UmengTool.checkWx(MainActivity.this);这一句是我的微信一直调不出来,加上的,可以查看你的签名和包名是否正确
我也是这样查看之后才知道自己的签名出现了问题的
在这里记录下来,以后少走弯路吧,毕竟时间真的耗不起啊!!!
最后运行之后显示的效果


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩剧烈咳嗽喘吃了药不管用怎么办 做什么事都有点轻微的手抖怎么办 见到喜欢的人做事情就手抖怎么办 做了尿结石手术还尿血怎么办 宝宝十一个大运动发展缓慢怎么办 一岁八个月宝宝肚里有蛔虫怎么办 孕妇5个月了缺碘怎么办 4个月婴儿折了下腰怎么办 签了居间合同网签合同有异议怎么办 魅族3s手机返回键失灵怎么办 英语冠词和名词的关系用不好怎么办 炸好了的肉梭子不脆了怎么办 跑步的时候胸抖的疼怎么办 小区内安装了乒乓球桌扰民了怎么办 裁判出示红牌如果球员不走怎么办 高三文化课不好又没有特长怎么办 孩子做事磨蹭拖拉不讲效率怎么办 宝贝幼儿园哭的嗓子哑了怎么办 我给孩子转学学校不接收怎么办 眼睛被太阳晒了胀豉豉的怎么办 电脑电源灯亮着屏幕是黑的怎么办 刚办健身卡健身房跑路了怎么办 孕妇怀孕初期胖的太快怎么办 魔幻陀螺二的陀螺拆不动怎么办 我不干了小厂不给我发工资怎么办 货车司机把人撞成重伤没钱出怎么办 房主卖房定金收了不想卖怎么办 领导迟迟不给升职加薪机会怎么办 加工中心铣圆进出刀有接刀痕怎么办 烧茄子时炸茄子茄子太吸油怎么办? 梦金园黄金刚买了不给退怎么办 给同学抄作业被老师发现了怎么办 不准体罚和变相体罚后熊孩子怎么办 钢琴练的不好走不了专业怎么办 老师来信息说孩子学习退步了怎么办 老人磕着膝盖走路腿疼怎么办 腿膝盖一受凉就疼怎么办可以不疼 手臂和膝盖摔烂了好痛?怎么办 结扎一个月后坐太久腰酸怎么办 杠铃深蹲肩关节背不过去怎么办 QQ音乐在别的地方停不了歌怎么办