您的位置:首页 > 移动开发 > Android开发

Android 第三方分享中遇到的问题以及解决方案

2014-07-01 18:02 435 查看
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!

第三方登录和分享过程中难免遇到各种纠结的问题,下面将我遇到的分享给大家。

先说第三方登录

1、首先要搞清楚后台同事要你传的是code还是token,因为先传code,token值后台同事也可以获得。正常的步骤是先获得code,再拿code去取得token。

2、新浪和QQ的第三方登录,网上例子大把,但要做奇虎和支付宝的比较困难,还好网上找到一个例子,加部分注释分享给大家:http://download.csdn.net/detail/liuxian13183/7456803

分享:

1、如果经常不出分享或者分享失败,要看你在后台写的签名与手机目前签名是否一致。关于如何查看签名,新浪这里有签名工具app_signatures.apk,下载地址详见:https://github.com/sinaweibosdk/weibo_android_sdk

这里有个小建议:在测试阶段,建议用debug.keystore来签名,然后把签名写到新浪后台,记得包名要一致;正式发包,再用自己项目独立的keystore来打包,然后到后台改下签名。

2、SSO登录弹不出弹窗;原因要么是上边的,要么是分享和登录混淆,你把SSO登录写到实现IWeiboHandler.Response接口的类中

3、分享图片的时候,新浪告诉你要填binary对象,ios的简单,直接什么NData转换,这里试了各种byte[]都不成功,最终是使用file对象,也就是把图片保存下来,把file对象传给新浪终于解决这个问题。

4、某些公司的图片做成背景色是透明的,格式是PNG,导致分享时会被自动加上黑色背景。这个问题经证实后,怎么解决呢?

首先要按格式保存bitmap值:

/**
*
* @param drawable
* @return
*/
public static Bitmap drawable2Bitmap(Drawable drawable) {
// 取 drawable 的长宽
int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();

// 取 drawable 的颜色格式
Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565;
// 建立对应 bitmap
Bitmap bitmap = Bitmap.createBitmap(w, h, config);
// 建立对应 bitmap 的画布
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, w, h);
// 把 drawable 内容画到画布中
drawable.draw(canvas);
return bitmap;
}

然后给写一张白色背景

/**
* 给图片画一张背景
* @param color
* @param orginBitmap
* @return
*/
public static Bitmap drawBg4Bitmap(int color, Bitmap orginBitmap) {
Paint paint = new Paint();
paint.setColor(color);
Bitmap bitmap = Bitmap.createBitmap(orginBitmap.getWidth(),
orginBitmap.getHeight(), orginBitmap.getConfig());
Canvas canvas = new Canvas(bitmap);
canvas.drawRect(0, 0, orginBitmap.getWidth(), orginBitmap.getHeight(), paint);
canvas.drawBitmap(orginBitmap, 0, 0, paint);
return bitmap;
}

这样就完美解决透明背景的PNG图片,上传后背景变黑的问题。

5、微信分享总是不成功,原因:第一可能是微信的KEY不对,第二可能没对微信进行混淆保护,第三可能是图片大于32k(这种根本不会弹出微信分享)

附:Sina、Alipay、QQ、Qihoo第三方网页登录和部分代码

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: