实践手记——调用人人新版API2 SDK在android平台上发布新鲜事及上传照片

来源:互联网 发布:京东秒杀软件安卓版 编辑:程序博客网 时间:2024/05/01 14:12

1.下载封装的SDK导入建立的工程

具体操作详见人人网的android sDK说明,虽然人人给开发者提供的文档少得可怜。

2.在Androidmanefest.xml添加代码,添加权限并注册Oauth2认证Activity

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.test.Test4renrenapiv2"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="9"        android:targetSdkVersion="15" />        <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.GET_ACCOUNTS" />    <uses-permission android:name="android.permission.USE_CREDENTIALS" />    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.test.Test4renrenapiv2.MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>                <activity            android:name="com.renn.rennsdk.oauth.OAuthActivity"            android:configChanges="orientation|navigation|keyboardHidden"            android:screenOrientation="portrait"  />    </application></manifest>
3.登录授权认证并调用接口

package com.test.Test4renrenapiv2;import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;import com.renn.rennsdk.RennClient;import com.renn.rennsdk.RennExecutor.CallBack;import com.renn.rennsdk.RennParam;import com.renn.rennsdk.RennResponse;import com.renn.rennsdk.RennClient.LoginListener;import com.renn.rennsdk.exception.RennException;import com.renn.rennsdk.param.PutFeedParam;import com.renn.rennsdk.param.UploadPhotoParam;public class MainActivity extends Activity {private RennClient renrenclient;private final String appid="[替换为自己的appid]";private final String apikey = "[替换为自己的appkey]";private final String secretkey = "[替换为自己的secretkey]";private final String tag = "debug";private Button but_feed,login,but_upload;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取人人客户端实例并初始化renrenclient = RennClient.getInstance(MainActivity.this);renrenclient.init(appid, apikey, secretkey);//设置需要用户授权的权限范围renrenclient.setScope("read_user_blog read_user_photo read_user_status read_user_album "+ "read_user_comment read_user_share publish_blog publish_share "+ "send_notification photo_upload status_update create_album "+ "publish_comment publish_feed");renrenclient.setTokenType("bearer");login = (Button)findViewById(R.id.login);login.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//通过网页方式用户登录授权renrenclient.login(MainActivity.this);}});//为renrenclient设置监听来处理登陆结果renrenclient.setLoginListener(new LoginListener() {@Overridepublic void onLoginSuccess() {// TODO Auto-generated method stubLog.d(tag,"loginScuccess");Toast.makeText(MainActivity.this, "login success", Toast.LENGTH_LONG).show();}@Overridepublic void onLoginCanceled() {// TODO Auto-generated method stub}});//调用接口发布新鲜事but_feed =(Button)findViewById(R.id.but_feed);but_feed.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubPutFeedParam param = new PutFeedParam();param.setTitle("新鲜事Title"); param.setMessage("这是一条新鲜事");param.setDescription("新鲜事Description"); param.setTargetUrl("http://www.56.com/u72/v_OTAyNTkxMDk.html");    try {renrenclient.getRennService().sendAsynRequest(param,new CallBack() {@Overridepublic void onSuccess(RennResponse arg0) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "put feed success", Toast.LENGTH_LONG).show();}@Overridepublic void onFailed(String arg0, String arg1) {// TODO Auto-generated method stub}} );} catch (RennException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});//调用人人接口上传一张图片,未指定相册ID默认上传到应用相册but_upload = (Button)findViewById(R.id.but_upload);but_upload.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubUploadPhotoParam param =new UploadPhotoParam();String descri = new SimpleDateFormat("yyyyMMdd_hhmmss").format(new Date());descri = "photo upload at:"+descri;param.setDescription(descri); File pics_dir=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);String file_path = pics_dir.toString()+File.separator+"t3.jpg"; File file= new File(file_path);param.setFile(file);try {renrenclient.getRennService().sendAsynRequest(param, new CallBack() {@Overridepublic void onSuccess(RennResponse arg0) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "photo upload success", Toast.LENGTH_LONG).show();}@Overridepublic void onFailed(String arg0, String arg1) {// TODO Auto-generated method stub}});} catch (RennException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

4运行效果



原创粉丝点击