赞
踩
本文介绍如何为Android应用添加分享功能。包含通过原生
Intent
和利用第三方SDK。
大多平台都支持隐式Intent方式发起分享。
创建隐式 Intent 时,Android 系统通过将 Intent 的内容与在设备上其他应用的清单文件中声明的 Intent 过滤器进行比较,从而找到要启动的相应组件。 如果 Intent 与 Intent 过滤器匹配,则系统将启动该组件,并向其传递 Intent 对象。 如果多个 Intent 过滤器兼容,则系统会显示一个对话框,支持用户选取要使用的应用。
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
Intent chooser = Intent.createChooser(sendIntent, "title");
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(chooser);
}
这里Action设置为Intent.ACTION_SEND
就是分享(发送)的方式。
然后通过putExtra()
方式传递附加信息,可以是文本、图片等。
为了每次分享时都选择平台,需要为Intent包装一个Chooser。
然后就可以启动Activity分享了。
不同的平台有所不同,一般都包括以下流程
集成ShareSDK的好处是,提供了统一的接口,抹平了不同平台间API的差异,集成更简单,维护也方便。特别是当你需要集成很多平台的时候。
但是上面单独集成的前两步还是不可缺少。
有时会遇到错误{"req":"e","errCode":-6,"transaction":"webpage1498805832655"}
keytool -list -v -keystore <你的keystore路径>
keytool
是jdk的自带一个命令,类似javac
android { *** signingConfigs { debug{ storeFile file("你的keystore路径") storePassword "你的storePassword" keyAlias "你的keyAlias" keyPassword "keyPassword" } release { storeFile file("你的keystore路径") storePassword "你的storePassword" keyAlias "你的keyAlias" keyPassword "你的keyPassword" } } *** }
有时会遇到错误checkArgs fail, thumbData is invalid
Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.app_icon);
Bitmap thumb = Bitmap.createScaledBitmap(bmp,THUMB_SIZE,THUMB_SIZE,true);
bmp.recycle();
本文原始发表于:https://wycode.cn/blog/Share 转载请注明出处
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。