本教程将讲解如何在Android设备上构建应用并接入人人网。通过下面简单的步骤,我们向你展示了接入人人网的几个关键步骤。

从零开始,按照本教程一步一步地进行,最后你将得到一个可以在Android模拟器中运行的应用。本教程基于Renren API Android SDK来实现。

注意:使用Renren API Android SDK来进行Android应用接入并不是必需的。实际上,这个SDK是将人人网开放平台技术架构的各种接口(如用作验证和授权的OAuth 2.0,提供数据的底层Rest API,以及带有可视化界面的Widget API)做了封装,以便于第三方调用。你也可以直接调用人人网开放平台技术架构的各种接口。

目录

[隐藏]

  • 1 准备工作

    • 1.1 开发环境
    • 1.2 下载Renren API Android SDK
  • 2 在开放平台申请和配置移动客户端应用
  • 3 创建你的Android应用
    • 3.1 建立目标工程
    • 3.2 将SDK加入目标工程
  • 4 在应用中加入人人网授权功能
    • 4.1 添加登陆相关控件
    • 4.2 添加登陆的代码逻辑
    • 4.3 授权效果图
  • 5 在应用中加入获取人人网好友的功能
    • 5.1 添加好友列表的相关控件
    • 5.2 添加好友列表的处理代码
    • 5.3 获取好友列表的效果图
  • 6 将你的Android应用提交审核
    • 6.1 如果应用还暂时没有下载地址怎么办?
  • 7 集成更多功能

[编辑]准备工作

在创建你的应用前,你需要做一些简单的准备。

[编辑]开发环境

你需要完成Android开发环境的搭建,如果你不熟悉这一步,可以在互联网上得到更详细的帮助。

本教程基于Android2.2完成,不同版本可能会存在细微差别。

[编辑]下载Renren API Android SDK

本教程需要Renren API Android SDK完成,所以在开始本教程前请先下载Renren API Android SDK最新版:Media:Renren_Android_SDK_v3.0_beta.zip

你也可以到人人网开源项目去下载Renren API Android SDK的最新版本:可以下载zip格式的压缩包并解压到选定的目录,也可以在官方代码库使用Hg获取最新的Renren API Android SDK代码。

[编辑]在开放平台申请和配置移动客户端应用

任何应用为了接入开放平台,都需要在开放平台申请一个应用,并做出相应的配置。

申请应用并配置基本属性的方法和步骤请参照申请应用并配置基本属性中的内容。 完成这一步后你便可以得到你的应用ID、API Key和Secret Key,这三个值将在下面的步骤中用到。

[编辑]创建你的Android应用

[编辑]建立目标工程

在Eclipse中,点击菜单File>New 创建一个新的Android工程,名为RenrenSDKDemo。 创建完成后可以得到下图这样的结果:

[编辑]将SDK加入目标工程

在Eclipse中,点击菜单File>Import,选择Existing Projects into Workspace, 选择之前解压Renren API Android SDK得到的renren_android_connect文件夹,勾选Copy Projects into workspace 选项,将Renren API Android SDK导入。

在之前创建的RenrenSDKDemo工程上右键,点击Property,在Android标签内将Renren API Android SDK加入目标工程Library。如下图所示:

编辑RenrenSDKDemo中的AndroidManifest.xml文件,添加如下Activity和权限的声明。

  • 在<application>节点下添加如下代码:
<!-- 辅助完成Renren授权的Activity ,必须在AndroidManifest.xml中声明 --><activityandroid:name="com.renren.api.connect.android.AuthorizationHelper$BlockActivity"android:theme="@android:style/Theme.Dialog"></activity>
  • 在<manifest>节点下添加如下代码,为应用添加网络访问权限:
<!-- renren sdk 需要的网络权限 ,必须在AndroidManifest.xml中声明 --><uses-permission android:name="android.permission.INTERNET" />

这样就完成了Renren API Android SDK的添加。

[编辑]在应用中加入人人网授权功能

帐号登录是最典型的一种接入方式,这种方式允许用户以人人网的账号登陆你的应用。下面用简单的步骤演示了如何在Android应用中加入登陆功能。

[编辑]添加登陆相关控件

我们需要一个简单的登陆界面,允许用户通过登陆按钮登陆。

这里用到的素材可以在人人帐号登录标识图片下载到。

我们这里用到了四张图片:Android登陆按钮蓝色版中,常态按钮和按下按钮的4张png图片。将图片改名,复制到res/drawable-mdpi文件夹中,并建立两个selecter文件,作为登陆和退出按钮的背景。

  • btn_login.xml文件:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_login_pressed" android:state_focused="true" android:state_pressed="true"/> <item android:drawable="@drawable/btn_login_pressed" android:state_focused="false" android:state_pressed="true"/> <item android:drawable="@drawable/btn_login_normal" android:state_focused="false" android:state_pressed="false"/></selector>
  • btn_logout.xml文件:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_logout_pressed" android:state_focused="true" android:state_pressed="true"/> <item android:drawable="@drawable/btn_logout_pressed" android:state_focused="false" android:state_pressed="true"/> <item android:drawable="@drawable/btn_logout_normal" android:state_focused="false" android:state_pressed="false"/></selector>

添加完成后的目录下图所示:

  • 在res/values/strings.xml中添加字符串:
<string name="auth_string">请登录</string> <string name="auth_success">登陆成功</string> <string name="auth_failed">登陆失败</string>
  • 修改res/main.xml文件,将下面代码复制到根节点里面:
<TextView android:id="@+id/loginText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/auth_string" android:layout_margin="5dip"/> <Button android:id="@+id/loginBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:background="@drawable/btn_login"/> <Button android:id="@+id/logoutBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:background="@drawable/btn_logout"/>

修改完成后main.xml界面布局如下图所示:

[编辑]添加登陆的代码逻辑

首先在RenrenSDKDemoActivity.java中添加相关实例域:

  • (注意,这里为了方便仅仅将Secret Key声明为静态字符串。在你的应用中至少需要进行代码混淆或加密,以保护你的Secret Key)
//你的应用IDprivate static final String APP_ID = "168538";//应用的API Keyprivate static final String API_KEY = "9cce3e007bd5464799440370253bb025";//应用的Secret Keyprivate static final String SECRET_KEY = "41fb11eed3364ebc84814daba56c3455";private Renren renren;private Handler handler;private Button loginBtn;private Button logoutBtn;private TextView loginText;
  • 在Activity创建时完成初始化,代码如下:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); //登录的Listener final RenrenAuthListener listener = new RenrenAuthListener() { //登录成功 public void onComplete(Bundle values) { showLoginBtn(false); loginText.setText(R.string.auth_success); handler.post(new Runnable() { @Override public void run() { Toast.makeText(RenrenSDKDemoActivity.this, RenrenSDKDemoActivity.this.getString(R.string.auth_success), Toast.LENGTH_SHORT).show(); } }); } //登录失败 @Override public void onRenrenAuthError(RenrenAuthError renrenAuthError) { loginText.setText(R.string.auth_failed); handler.post(new Runnable() { @Override public void run() { Toast.makeText(RenrenSDKDemoActivity.this, RenrenSDKDemoActivity.this.getString(R.string.auth_failed), Toast.LENGTH_SHORT).show(); } }); } @Override public void onCancelLogin() { } @Override public void onCancelAuth(Bundle values) { } }; //登录按钮的事件 loginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { renren.authorize(RenrenSDKDemoActivity.this, listener); } }); //退出按钮的事件 logoutBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { renren.logout(getApplicationContext()); showLoginBtn(true); loginText.setText(R.string.auth_string); } });}//初始化按钮和Renren实例private void init(){ renren = new Renren(API_KEY, SECRET_KEY, APP_ID, RenrenSDKDemoActivity.this); handler = new Handler(); loginBtn = (Button) findViewById(R.id.loginBtn); logoutBtn = (Button) findViewById(R.id.logoutBtn); loginText = (TextView) findViewById(R.id.loginText); showLoginBtn(true);}//显示登录/退出按钮private void showLoginBtn(boolean flag){ if(flag){ loginBtn.setVisibility(View.VISIBLE); logoutBtn.setVisibility(View.GONE); } else { loginBtn.setVisibility(View.GONE); logoutBtn.setVisibility(View.VISIBLE); }}

至此,你可以尝试在Android模拟器中运行这个应用了。

[编辑]授权效果图

  • 登陆过程:
  • 授权过程:

[编辑]在应用中加入获取人人网好友的功能

获取好友列表是一种常见的社交功能。这段教程能帮助你实现获得登陆用户好友列表的功能,这里用到的API接口是friends.getFriends。

[编辑]添加好友列表的相关控件

首先,添加相关控件:一个Button和一个ListView,用来显示好友列表。

  • 修改res/main.xml文件,将下面代码复制到根节点里面:
<Button android:id="@+id/showFriendsBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取好友" /> <ListView android:id="@+id/friendList" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView>
  • 修改完成后main.xml布局如下图所示:

[编辑]添加好友列表的处理代码

  • 修改RenrenSDKDemoActivity.java,添加显示等待框的函数:
private ProgressDialog progressDialog; /** * 显示等待框 * @param title 标题 * @param message 信息 */ protected void showProgress(String title, String message) { progressDialog = ProgressDialog.show(this, title, message); } /** * 取消等待框 */ protected void dismissProgress() { if (progressDialog != null) { try { progressDialog.dismiss(); } catch (Exception e) { } } }
  • 修改RenrenSDKDemoActivity.java,添加触发按钮及事件:
private Button showFriendsBtn; private ListView friendListView; public void onCreate(Bundle savedInstanceState) { ... showFriendsBtn = (Button) findViewById(R.id.showFriendsBtn); friendListView = (ListView) findViewById(R.id.friendList); //为"显示好友列表"按钮添加事件 showFriendsBtn.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { if (renren != null) { //创建异步获取数据的AsyncRenren实例 AsyncRenren asyncRenren = new AsyncRenren(renren); showProgress("请等待","获取数据中"); //创建一个FriendsGetFriendsRequestParam用来获取好友数据 FriendsGetFriendsRequestParam param = new FriendsGetFriendsRequestParam(); AbstractRequestListener<FriendsGetFriendsResponseBean> listener = new AbstractRequestListener<FriendsGetFriendsResponseBean>() { //好友数据获取完成,可以在FriendsGetFriendsResponseBean中取得结果 @Override public void onComplete(final FriendsGetFriendsResponseBean bean) { runOnUiThread(new Runnable() { @Override public void run() { dismissProgress(); showFriendList(bean); } }); } //获取数据错误 @Override public void onRenrenError(final RenrenError renrenError) { runOnUiThread(new Runnable() { @Override public void run() { dismissProgress(); } }); } //获取数据失败 @Override public void onFault(final Throwable fault) { runOnUiThread(new Runnable() { @Override public void run() { dismissProgress(); } }); } }; //开始获取数据 asyncRenren.getFriends(param, listener); } } //切换登陆/退出界面 private void showLoginBtn(boolean flag){ if(flag){ loginBtn.setVisibility(View.VISIBLE); logoutBtn.setVisibility(View.GONE); showFriendsBtn.setVisibility(View.GONE); friendListView.setVisibility(View.GONE); } else { loginBtn.setVisibility(View.GONE); logoutBtn.setVisibility(View.VISIBLE); showFriendsBtn.setVisibility(View.VISIBLE); friendListView.setVisibility(View.VISIBLE); } }});

至此,你可以尝试在Android模拟器中运行这个应用了。

[编辑]获取好友列表的效果图

  • 点击"获取好友",得到下图结果:

[编辑]将你的Android应用提交审核

在开发和测试完你的Android应用之后,应该提交给人人网进行审核。你可以在本网页最上方"我的应用"中进行相关操作。审核标准可以在这里查看。

在你的应用被审核通过之前,有些与人人网相关的功能会受到一定的限制,如登录人数的限制等等。等到你的应用被审核通过后,所有限制会取消,并且从审核通过第二天开始你的应用会出现在人人网的应用列表页。

注意:提交审核时,请确保在之前填写的“客户端下载URL”所指定的地址能够下载到你的应用,这样人人网的审核人员才能够进行审核。

[编辑]如果应用还暂时没有下载地址怎么办?

如果是新开发的应用,很可能在你提交审核的时候还没有将应用提交到应用市场或发布到网络,这时你可能没有办法提供一个有效的“客户端下载URL”供用户下载,因此我们的审核人员也就无法进行审核。

在这种情况下,请联系人人网开放平台的审核团队:zhengqin.guo#renren-inc.com (请将#换成@)

[编辑]集成更多功能

Renren API Android SDK中提供了更多功能,如果你希望获得更详细的资料,可以查看和运行Renren API Android SDK中的Demo程序,如下图所示。

即使在你的应用被审核通过并上线以后,你仍然可以(而且应该)不断地对应用进行改进,来保证持续地提升用户体验。

如果你想在改进的过程中集成更多人人网开放平台提供的功能,那么可以参考人人网开放平台技术架构,人人网开放平台提供的所有接口和SDK都是基于它来实现的。

Android RenRen SDK 接入教程相关推荐

  1. android美颜功能吗,Android美颜sdk接入之前需要知道这些知识吗

    原标题:Android美颜sdk接入之前需要知道这些知识吗 既然是美颜sdk,那么肯定会涉及到图像方面的技术或算法.像是直播或短视频这类应用场景,他们在接入Android美颜sdk之前都会根据各自情况 ...

  2. android 支付宝sdk接入详解

    android 支付宝sdk接入详解 第一步 在接入支付宝sdk之前首先要进入支付宝开发者平台申请应用所需要的应用唯一标识(APPID).应用私钥(APP_PRIVATE_KEY).支付宝公钥(ALI ...

  3. 最新-手把手教Unity2017.3 Android Studio3.0.1 SDK接入教程含jdk和sdk环境配置

    本教程非常适合萌新,有大量的截图一步一步教下去. 网上有很多接入sdk的教程,但是有些时间过得久了,版本更新了,新手在跟着做的过程中可能会踩到很多坑.废话不多说,下面详细说一下该注意的事情. 目前un ...

  4. Android 穿山甲广告接入教程

    穿山甲广告接入教程 相信大家都有碰到过在应用内加广告的需求,大部分的做法都是在开屏页加广告吸引用户点击跳转.目前市面上的广告sdk有很多,今天我们就来介绍一下穿上甲广告的简单集成接入 sdk资源集成地 ...

  5. 短视频直播平台第三方特效SDK接入教程(完整版)

    近些年,随着网络视频直播行业的兴起,Faceu激萌.抖音短视频受到了用户极度的追捧,整个行业的用户市场与发展前景都非常不错,已成为时下最热门的话题,大部分企业希望在自己的移动应用上添加类似Faceu. ...

  6. Android渠道SDK接入常见问题

    应用宝 1. demo可以而游戏微信登陆收不到回调 这是由于速接sdk的onNewIntent没有被调用.解决办法是在ysdk的额外配置脚本中,删除游戏的FirstActivity并将mainActi ...

  7. 抖音上android studio,快手、抖音、微视类短视频SDK接入教程,7步就能搞定

    按照如下三步操作,可以用 XCode 或者 Android Studio 编译和调试小视频 App 的客户端代码,运行效果如下: 点击 小视频源码 可以下载到小视频 App 的源代码. XCode 9 ...

  8. android 第三方SDK接入一般流程

    1 官方文档必看 官方文档接入一般包括常规接入和自定义接入.这里的建议是:先常规接入,跑起来,并测试正常之后,然后实现自定义的接入. 目前我接入过的包括:常用的支付,地图,推送,分享,热更新,功能性s ...

  9. 类似于快手、美拍、抖音短视频录制SDK接入教程

    这几年抖音短视频非常火爆,所以很多公司也希望开发短视频录制功能,现在大部分企业是通过第三方视频SDK来完成的,当然不考虑成本的,公司也可以自己开发. 先给大家看下短视频效果,没法插入视频,直接贴视频地 ...

最新文章

  1. Hdu 3341 Lost#39;s revenge (ac+自己主动机dp+hash)
  2. 删除vs中最近的项目的方法
  3. 概率图模型中的变量消除顺序
  4. linkedin爬虫_机器学习的学生和从业者的常见问题在LinkedIn上提问
  5. RedisView-开源跨平台的Redis可视化工具
  6. python入门教程pdf-python基础教程:《Python编程无师自通》PDF版百度云下载
  7. html显示python执行的结果_批量执行用例,且结果显示在html中,python控制台也会显示运行过程...
  8. 如何成为一个技术全面的架构师
  9. Python 办公自动化之全网最强最详细PDF 文件操作手册
  10. excel只能在编辑栏粘贴_如何在Excel中切换到编辑模式
  11. css3新单位vw、vh、vmin、vmax的使用介绍
  12. opencv录制视频 python_OpenCV Python 录制视频
  13. 树莓派连接OLED屏
  14. CS61A Proj 3
  15. 【图形学】计算机图形学-练习题7
  16. 韩国李世龙19岁当爹 与洪瑛琦姐弟恋开花结果
  17. 用wvdial和ppp轻松上网
  18. python3对拉勾数据进行可视化分析的方法详解
  19. 优达学城,基于激光的卡尔曼滤波器的C++实现。
  20. php时间格式及转换应用

热门文章

  1. 独家!10省份“12个5G+智慧公交”案例汇总!
  2. 从零开始Android游戏编程(第二版)
  3. 手机怎么压缩照片?手机压缩照片方法分享
  4. 魔改《合成大西瓜》——附试玩链接
  5. stream().filter匹配过滤总结
  6. 2017.12.10《“剑锋OI”普及组多校联盟系列赛(14)#Sooke#Kornal 的课余时间 》分析报告
  7. C#检索局域网内主机的IP、MAC地址
  8. Mybatis数据持久化
  9. jmeter参数化的用法和用途
  10. EasyRecovery2022数据恢复软件稳定版及版本区别对比