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

              


                                本文来自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第三方网页登录和部分代码


转载于:https://www.cnblogs.com/hehehaha/p/6147349.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android 12,可以通过为第三方应用指定不同的尺寸类型来使其画面完整显示,以及使用ActivityOptions.setLaunchWindowingMode()方法将其设置为“freeform”模式。 ### 回答2: 在Android 12,使用freeform形式拉起第三方应用时,可能会遇到第三方应用的画面无法完整显示的问题。解决这个问题的方法如下: 第一种方法是通过调整设备的显示设置来解决。打开设备的设置菜单,找到"显示"或"显示和亮度"选项,然后选择"屏幕缩放"或"显示尺寸"。在这个选项,可以尝试将屏幕缩放比例调整为较小的数值,这可以让应用程序的界面可以完整显示在freeform窗口。 第二种方法是修改应用程序的布局参数。这需要在第三方应用的代码进行修改。可以尝试将应用程序的布局参数设置为WRAP_CONTENT,这样可以让应用的界面自适应freeform窗口的大小,保证界面可以完整显示。 第三种方法是在freeform模式下使用辅助工具来操作。Android 12提供了辅助功能,可以帮助用户操作窗口大小和位置。通过启用辅助功能后,可以使用辅助功能工具来调整freeform窗口的大小,以确保第三方应用的界面能够完整显示。 需要注意的是,这些方法可能对所有第三方应用都有效,但也可能只在某些应用上有效。具体的解决方法可能因应用的不同而有所不同。如果以上方法不能解决问题,建议联系第三方应用的开发者,向他们反馈该问题,希望他们对应用程序进行更新和修复。 ### 回答3: 在Android 12,如果想以freeform形式拉起第三方应用并使其画面完整显示,可以按照以下步骤进行操作: 1. 确保设备已经升级到Android 12版本。 2. 打开设置应用,并找到“开发者选项”菜单。 3. 点击进入“开发者选项”菜单,然后找到“调整窗口大小自动切换到自由窗口”的选项,将其开启。 4. 返回到主屏幕界面,打开想要以freeform形式拉起的第三方应用。 5. 在应用主界面长按任务切换按钮或者点击多任务视图按钮。 6. 选择“自由窗口”选项,应用的画面将会切换到freeform模式。 7. 在freeform模式下,可以通过拖拽边缘调整应用窗口的大小和位置,以便完整显示画面。 需要注意的是,以上步骤的“开发者选项”菜单可能默认是隐藏的,需要进入“设置”应用,找到“关于手机”或者“关于设备”等选项,在其连续点击版本号或者Build号码,即可进入“开发者选项”菜单。 如果在以上操作过程遇到问题,可以尝试重启设备或者确保第三方应用已经适配了Android 12的freeform模式。同时,由于不同厂商可能对Android系统进行了定制,操作步骤可能会略有差异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值