首页 > 其他分享 >android 友盟SNS_SDK为Android应用加入SNS分享、同步功能

android 友盟SNS_SDK为Android应用加入SNS分享、同步功能

时间:2023-10-20 14:32:07浏览次数:36  
标签:name SNS 应用 android 分享 友盟 SDK



使用友盟SNS_SDK为Android应用加入SNS分享、同步功能


很多朋友在开发Android应用的过程中,都想加入社会化的分享功能,如将自己的应用使用状态或心得同步到新浪微博、人人网或腾讯微博等。这些社交网络或微博都已经发布了针对开发者的开放平台(关于开放平台的相关信息,请参考《说说微创业——关于开放平台和微时代》),因此我们可以将这些分享功能集成到自己的应用中,提高用户的互动性和产品推广效果。将应用与社会化网络联系起来已经成为现在移动开发的主流趋势之一。

可对于新手而言,各大开放平台的SDK使用方法还需要花费很大精力来学习,如果仅仅是开发Demo的话,其实没有必要花费过多的时间在此。近两天我也在想办法给自己的应用加入社会化分享功能,偶然的机会看到了友盟提供的SNS_SDK(测试版),简单的试用过以后感觉不错,因此分享给大家,让我们的产品在开发初期也能快速方便的拥有SNS分享同步功能。

友盟SNS_SDK目前提供两种分享方式:一种是文字分享,另一种是图文(图片+文字)分享。支持的开放平台目前有新浪微博、人人网和腾讯微博。首先我们要下载相应的SDK。

 

进入友盟文档中心,点击左侧的开发工具SDK目录,在右侧点击下载即可。这里是一个简要的开发文档(点击查看),当然我们会在下面为大家详细介绍其使用方法。

首先我们应该注册一个友盟账号(点击注册),注册完成后登录,进入友盟的管理后台,点击“添加新应用”,进入新应用信息填写的页面。App 建立成功后,自动会跳转到该App管理页面的开发指南页面。在这个页面中获得该App 的AppKey(非常重要)。获得该Appkey 后,请继续完成以下步骤:

UMENG_APPKEY 和分享平台的绑定:

获得appkey后,还需要将应用和我们要使用的分享平台注册时获取的appkey 和appsecret绑定。注册过程如下:

新浪微博:http://open.t.sina.com.cn -> 我是开发者 -> 创建新应用

腾讯微博:http://open.t.qq.com/ -> 创建应用

人人网: http://dev.renren.com/ -> 创建应用

注意:人人网的应用创建完成后,在“我的应用”页面将可以看到获得的AppId,Appkey, Secret,至此还需要去设置App 的Callback URL:点击“应用设置”下的“编辑应用属性”,在跳转后的页面中,点击 “Canvas 设置”, 设置“Canvas Callback URL”为:http://sns.whalecloud.com/renr/callback 保存即可, 最后因为SDK 中使用了人人的status.set 和photo.upload 接口(这两个接口属于人人定义的高级API), 目前人人要求对高级API的使用须向其提交申请,具体流程参见:人人API 申请审核制度(V1.0) 下的“申请流程”。不过现在作为测试者,可以先不申请,具体详见高级API测试方案

在各平台注册应用后,接下来需要完成 UMENG_APPKEY 和友盟支持的分享平台注册应用时获取的appkey 和appsecret 绑定。具体操作为:开发工具->SNS 分享->设置。如下图所示:

 

接下来我们要开始集成到应用中去咯:

一、导入UMeng-Android-SDK-SnsService.jar (简称SDK)

右键工程根目录,选择 Properties -> Java Build Path -> Libraries,然后点击 Add External JARs… 选择指向 UMeng-Android-SDK-snsService.jar 的路径,点击 OK,即导入成功。

与此同时SDK 中引用了httpmime-4.1.1.jar 和commons-httpclient-3.1.jar 这两个第三方的包,请用同样的方式引入工程。

二、配置AndroidMainfest.xml

1. 添加Activity “com.umeng.api.activity.OauthActivity”和”com.umeng.api.activity.UpdateStatusActivity”

1. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><activity</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"com.umeng.api.activity.OauthActivity"</span></span>  
2. <span style="color:#009900">    <span style="color:#000066">android:screenOrientation</span>=<span style="color:#ff0000">"unspecified"</span></span>  
3. <span style="color:#009900">    <span style="color:#000066">android:windowSoftInputMode</span>=<span style="color:#ff0000">"adjustResize"</span></span>  
4. <span style="color:#009900">    <span style="color:#000066">android:configChanges</span>=<span style="color:#ff0000">"orientation|keyboardHidden"</span><span style="color:#000000; font-weight:bold">></span></span>  
5. <span style="color:#009900"><span style="color:#000000; font-weight:bold"></activity<span style="color:#000000; font-weight:bold">></span></span></span>  
6. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><activity</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"com.umeng.api.activity.UpdateStatusActivity"</span></span>  
7. <span style="color:#009900">    <span style="color:#000066">android:theme</span>=<span style="color:#ff0000">"@style/Theme.IOSched"</span></span>  
8. <span style="color:#009900">    <span style="color:#000066">android:windowSoftInputMode</span>=<span style="color:#ff0000">"stateVisible|adjustResize"</span></span>  
9. <span style="color:#009900">    <span style="color:#000066">android:screenOrientation</span>=<span style="color:#ff0000">"unspecified"</span></span>  
10. <span style="color:#009900">    <span style="color:#000066">android:configChanges</span>=<span style="color:#ff0000">"orientation|keyboardHidden"</span><span style="color:#000000; font-weight:bold">></span></span>  
11. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><intent-filter<span style="color:#000000; font-weight:bold">></span></span></span>  
12. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><action</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"android.intent.action.VIEW"</span><span style="color:#000000; font-weight:bold">/></span></span>  
13. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><category</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"android.intent.category.DEFAULT"</span><span style="color:#000000; font-weight:bold">/></span></span>  
14. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><category</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"android.intent.category.BROWSABLE"</span><span style="color:#000000; font-weight:bold">/></span></span>  
15. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><data</span> <span style="color:#000066">android:scheme</span>=<span style="color:#ff0000">"schemaYourUmengAppKey"</span><span style="color:#000000; font-weight:bold">/></span></span>  
16. <span style="color:#009900"><span style="color:#000000; font-weight:bold"></intent-filter<span style="color:#000000; font-weight:bold">></span></span></span>  
17. <span style="color:#009900"><span style="color:#000000; font-weight:bold"></activity<span style="color:#000000; font-weight:bold">></span></span></span>



2.修改Activity “com.umeng.api.activity.UpdateStatusActivity”中的data标签:

1. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><activity</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"com.umeng.api.activity.UpdateStatusActivity"</span> …<span style="color:#000000; font-weight:bold">></span></span>  
2. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><intent-filter<span style="color:#000000; font-weight:bold">></span></span></span>  
3.         …  
4. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><data</span> <span style="color:#000066">android:scheme</span>=<span style="color:#ff0000">"schema你的应用程序的友盟Appkey"</span> <span style="color:#000000; font-weight:bold">/></span></span>  
5. <span style="color:#009900"><span style="color:#000000; font-weight:bold"></intent-filter<span style="color:#000000; font-weight:bold">></span></span></span>  
6. <span style="color:#009900"><span style="color:#000000; font-weight:bold"></activity<span style="color:#000000; font-weight:bold">></span></span></span>



例如你的UMENG_APPKEY 为:4da011e664f3b4a487000002,则data 标签改为:

1. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><data</span> <span style="color:#000066">android:scheme</span>=<span style="color:#ff0000">"schema4da011e664f3b4a487000002"</span> <span style="color:#000000; font-weight:bold">/></span></span>



3. 添加UMENG_APPKEY:


1. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><application</span> …<span style="color:#000000; font-weight:bold">></span></span>  
2.     …  
3. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><meta-data</span> <span style="color:#000066">android:value</span>=<span style="color:#ff0000">"你的应用的Appkey"</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"UMENG_APPKEY"</span><span style="color:#000000; font-weight:bold">></span><span style="color:#000000; font-weight:bold"></meta-data<span style="color:#000000; font-weight:bold">></span></span></span>  
4. <span style="color:#009900"><span style="color:#000000; font-weight:bold"></application<span style="color:#000000; font-weight:bold">></span></span></span>



4.添加相应的权限:

android.permission.ACCESS_NETWORK_STATE 用于判断网络的状态,因为SDK 中提供的服务仅在有网络时有效;

android.permission.INTERNET 用于完成分享内容的发送;

android.permission.READ_PHONE_STATE 读取终端的IMEI, 以用于分享的统计。

1. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><manifest</span> …<span style="color:#000000; font-weight:bold">></span></span>  
2.     …  
3. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><uses-permission</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"android.permission.ACCESS_NETWORK_STATE"</span><span style="color:#000000; font-weight:bold">/></span></span>  
4. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><uses-permission</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"android.permission.INTERNET"</span><span style="color:#000000; font-weight:bold">/></span></span>  
5. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><uses-permission</span> <span style="color:#000066">android:name</span>=<span style="color:#ff0000">"android.permission.READ_PHONE_STATE"</span><span style="color:#000000; font-weight:bold">/></span></span>  
6. <span style="color:#009900"><span style="color:#000000; font-weight:bold"></manifest<span style="color:#000000; font-weight:bold">></span></span></span>



5.下面这段文字来自官方:

如果您调用我们提供的SDK 的Activity 支持横竖屏的切换,并且您使用的是我们SDK 中提供的默认分享页面,我们强烈建议您将该Activity 设置为在横竖屏切换时Activity 不销毁, 您只需在该Activity 中添加: android:configChanges=”orientation|keyboardHidden”。这对您的应用功能,性能均无影响,因为我们的SDK 默认的分享页面与您的应用的交互是从弹出一个Dialog 开始的,这样的设置将保证在横竖屏切换时不会出现Activity 在Dialog Dismiss 之前finish,从而避免造成潜在隐患,使得整个app 更安全,稳定。

至于你加没加,反正我加了。

三、添加其他资源文件

我们下载的SDK中的资源文件有:Drawable, drawable-hdpi, layout, values, anim 只需要拷贝到project 的对应目录下即可。

四、配置分享平台(可选)

目前友盟支持的分享的平台是:新浪微博,人人网和腾讯微博, 如果只需要用到其中的某一个或某两个平台, 只需要在umeng_share_parameters.xml(该文件在SDK提供的资源文件, values文件夹下)将不需要的平台设为”close”即可(默认三个平台都是开启的)。例如不需要用到分享到腾讯微博的功能,则将umeng_share_tenc 设为”close”即可。


1. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><resources<span style="color:#000000; font-weight:bold">></span></span></span>  
2. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><string</span> <span style="color:#000066">name</span>=<span style="color:#ff0000">"umeng_share_renr"</span><span style="color:#000000; font-weight:bold">></span></span>open<span style="color:#009900"><span style="color:#000000; font-weight:bold"></string<span style="color:#000000; font-weight:bold">></span></span></span>  
3. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><string</span> <span style="color:#000066">name</span>=<span style="color:#ff0000">"umeng_share_sina"</span><span style="color:#000000; font-weight:bold">></span></span>open<span style="color:#009900"><span style="color:#000000; font-weight:bold"></string<span style="color:#000000; font-weight:bold">></span></span></span>  
4. <span style="color:#009900"><span style="color:#000000; font-weight:bold"><string</span> <span style="color:#000066">name</span>=<span style="color:#ff0000">"umeng_share_tenc"</span><span style="color:#000000; font-weight:bold">></span></span>close<span style="color:#009900"><span style="color:#000000; font-weight:bold"></string<span style="color:#000000; font-weight:bold">></span></span></span>  
5.     …  
6. <span style="color:#009900"><span style="color:#000000; font-weight:bold"></resources<span style="color:#000000; font-weight:bold">></span></span></span>



五、其他复杂的功能请参看官方文档。

六、下面我们来看一下最最基本的分享文字消息的使用方法,以我的应用为示例:

在需要打开分享功能的地方加入下列使用代码即可:

1. UMSnsService.<span style="color:#006633">share</span><span style="color:#009900">(</span>BJTUerActivity.<span style="color:#000000; font-weight:bold">this</span>, <span style="color:#0000ff">"测试同步功能!"</span><span style="color:#009900">)</span><span style="color:#339933">;</span>



这样点击后,将会弹出以下界面:

哈哈,接下来就是认证了。因为我已经认证过了,所以这一步略过。然后就是分享界面:

 

其中还可以插入表情、话题或者@某人等。

当然,除了分享文字外,还可以分享图片加文字(如拍张照后直接分享),具体使用方法请参考官方文档。

最后再提一点,关于用户的所有分享操作在友盟上开发者是可以看到所有统计数据的,如下图(我的应用只有我在测试,所以图表比较寒酸…):


标签:name,SNS,应用,android,分享,友盟,SDK
From: https://blog.51cto.com/u_16034393/7950929

相关文章

  • Android studio的Device File Explorer不见了
    手机文件管理器路径View------>toolwindows----->DeviceFileExplorer  ......
  • Android入门教程 | RecyclerView使用入门
    想必大家对列表的表现形式已经不再陌生。手机上有联系人列表,文件列表,短信列表等等。本文讲述的是在Android开发中用RecyclerView来实现列表效果。使用步骤引入RecyclerView在app的build.gradle文件中添加引用。我们使用的是androidx包。gradle:dependencies{//........
  • Android入门教程 | DrawerLayout 侧滑栏
    DrawerLayout是实现了侧滑菜单效果的控件。DawerLayout分为侧边菜单和主内容区两部分:主内容区要放在侧边菜单前面,还有就是主内容区最好以DrawerLayout最好为界面的根布局,否则可能会出现触摸事件被屏蔽的问题。侧滑菜单部分的布局必须设置layout_gravity属性,表示侧滑菜单是在......
  • android 升级到java11,升级到androidx的操作方法
    androidstudioAndroid9(28)升级到Android10(29)Androidx小计_sdk29对应依赖androidx.appcompat:appcompat-resources是-CSDN博客java.lang.NoClassDefFoundError:Failedresolutionof:Landroidx/appcompat/R$drawable;-简书(jianshu.com)......
  • Android 一例Base64错误问题
    在Android11下正常,8.1下不正常修改importimportorg.apache.commons.codec.binary.Base64;为importandroid.util.Base64;publicstaticStringencrypt(Stringdata){try{SecretKeysecretKey=newSecretKeySpec(SECRET_KEY.getBytes(),ENCRYPT......
  • 一张图去除焦虑,我还能在Android这行继续“裸泳”
    每当新技术潮流兴起时,总会有人声称它们将使"程序员"失业,例如云服务、低代码等等...云原生的出现甚至引发了一种观点,认为很多程序员工作将会集体下岗,生成式技术正在颠覆多个行业,有专家预言在三年内编程将终结...今年,随着技术的不断突破和创新,它们具备更加完善的能力,可以应用于多个工......
  • Android(S)系统属性服务详解
    1.简介 Android系统中,为统一管理系统的属性,设计了一个统一的属性系统,包括两部分:文件保存的持久属性和每次开机导入的cache属性,前者主要保存在.prop文件中,需要注意的是android属性的名称是有一定的格式要求。每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Andro......
  • 如何在Android中获取图片路径
    Android中获取图片路径的方法在Android开发中,获取图片路径是一个常见的需求。下面介绍几种途径来实现获取图片路径的方法。途径一:从相册中获取图片路径要从相册中获取图片的路径,我们需要调用相应的系统接口实现。具体步骤如下:在Manifest文件中添加获取相册的权限:<uses-per......
  • 最新Unity 如何打包发布到Android
    Unity打包Android现在UnityHub已经做的非常好了,可以直接下载对应Unity版本所对应得JDK,NDK,SDK,直接可以通过unityhub下载避免了,各种版本不同导致的编译问题,大大的降低了初学者的打包发布的难度,本文详细讲解UnityAndroid打包以及在打包中间需要理解的点, 如下:(1) Unityhu......
  • Android转行的第一顺位是智能座舱?
    前言智能座舱是汽车中负责提供驾乘人员舒适性和安全性的部分,其包括了许多功能,如操控系统、娱乐系统、空调系统、通信系统、座椅系统、交互系统、感知系统等。在这些功能的实现上,AndroidFramework系统发挥着重要的作用。Android系统是一种基于Linux的开放源代码操作系统,广泛应用于......