Android分享到新浪微博
来源:互联网 发布:nba今日数据统计 编辑:程序博客网 时间:2024/04/25 20:00
废话不说,开始正题。
- 进入新浪微博提供的开放平台http://open.weibo.com/ 注册新浪账号。
- 点击’我是开发者‘,创建一个应用,如果有账号,当然就省事了,得到CONSUMER_KEY和CONSUMER_SECRET,保存这两个值。
- 下载新浪提供的Android SDK,地址:http://code.google.com/p/weibo-android-sdk/downloads/list
- 解压下载的压缩包,解压完后,大家可以看到,它其实是Android SDK分享新浪微博的简单项目文件,将该项目导入到eclipse即可
- 然后,在复制到项目中的com.weibo.net包下找到Weibo.java文件,修改CONSUMER_KEY和CONSUMER_SECRET的值,与第二点是提到的值对应,
- 在com.weibo.android包下的AuthorizeActivity.java文件中,还可以采用另外一种方式,如:
public void onClick(View v) {// TODO Auto-generated method stubif(v == mLogin){//将CONSUMER_KEY、CONSUMER_KEY的值在此文件中定义,初始时为Weibo对象设置该值Weibo weibo = Weibo.getInstance();weibo.setupConsumerConfig(CONSUMER_KEY, CONSUMER_KEY);try {//直接在Weibo.java中定义为static,需要调用的地方直接调用/*AccessToken at = weibo.getXauthAccessToken(TextActivity.this, Weibo.APP_KEY, Weibo.APP_SECRET, "", "");mToken.setText(at.getToken());*/RequestToken requestToken = weibo.getRequestToken(AuthorizeActivity.this, Weibo.APP_KEY, Weibo.APP_SECRET, AuthorizeActivity.URL_ACTIVITY_CALLBACK);mToken.setText(requestToken.getToken());Uri uri = Uri.parse(Weibo.URL_AUTHENTICATION + "?display=wap2.0&oauth_token=" + requestToken.getToken() + "&from=" + AuthorizeActivity.FROM);startActivity(new Intent(Intent.ACTION_VIEW, uri));}catch (WeiboException e){e.printStackTrace();}}}
- AuthorizeActivity和TestActivity代码所对应的java文件都需要在AndroidManifest.xml中注册。 如下:
<activity android:configChanges="keyboardHidden|orientation" android:name=".TestActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="weiboandroid" android:host="TestActivity" /> //这里scheme host 在AndroidExample对应文件跳转时会用到,scheme写项目名称即可,host写授权后要跳转到的Activity名字</intent-filter> </activity>
在文件AuthorizeActivity.java中有回调地址,和上面代码中的scheme、host对应即可:private static final String URL_ACTIVITY_CALLBACK = "weiboandroid://TestActivity"
- 到此,项目基本可以运行起来了,但是当你选择用非系统浏览器(如QQ、UC等)打开新浪授权页面时,填写完信息,点击授权,问题出现了,找不到页面。所以我们需要修改下,将其于系统浏览器绑定,此修改在AuthorizeActivity.java文件中,如下:
public void onClick(View v) {// TODO Auto-generated method stubif(v == mLogin){Weibo weibo = Weibo.getInstance();weibo.setupConsumerConfig(CONSUMER_KEY, CONSUMER_SECRET);try {/*AccessToken at = weibo.getXauthAccessToken(TextActivity.this, Weibo.APP_KEY, Weibo.APP_SECRET, "", "");mToken.setText(at.getToken());*/RequestToken requestToken = weibo.getRequestToken(AuthorizeActivity.this, Weibo.APP_KEY, Weibo.APP_SECRET, AuthorizeActivity.URL_ACTIVITY_CALLBACK);mToken.setText(requestToken.getToken());Uri uri = Uri.parse(Weibo.URL_AUTHENTICATION + "?display=wap2.0&oauth_token=" + requestToken.getToken() + "&from=" + AuthorizeActivity.FROM);Intent intent = new Intent(Intent.ACTION_VIEW, uri);//与系统浏览器绑定,用系统浏览器打开授权页面intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");startActivity(intent);}catch (WeiboException e){e.printStackTrace();}}
- 修改发布的图片的地址,在TestActivity.java文件中,如下:
public void onClick(View v) {File file = Environment.getExternalStorageDirectory();String sdPath = file.getAbsolutePath();/********************修改地址,因为你的存储卡中可能没有这张图片,改为有的图片即可***************************/String picPath = sdPath + "/" + "abc.jpg";try {share2weibo("abc", picPath);Intent i = new Intent(TestActivity.this, ShareActivity.class);TestActivity.this.startActivity(i); }catch (WeiboException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{}}
- 到此,基本搞定,可是还是美中不足,不能发网络图片,大家不急,在com.weibo.net包下的Utility.java文件中做如下修改即可实现网络图片的使用:
在该文件中,添加如下方法:public static Bitmap returnBitMap(String url) { URL myFileUrl = null; Bitmap bitmap = null; try { myFileUrl = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } try { HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } return bitmap; }
在该文件的288行左右,做如下修改,将第一行注释后改为第三行代码://Bitmap bf = BitmapFactory.decodeFile(file);//将原来的注释,改为利用网络图片Bitmap bf = returnBitMap(file);
到此,大功告成!
- Android分享到新浪微博
- Android分享到新浪微博
- android 分享到新浪微博
- android指定分享到新浪微博
- Android 分享到新浪微博
- 分享到新浪微博
- 分享到新浪微博
- android分享到新浪微博,认证+发送微博
- android分享到新浪微博,认证+发送微博,
- 如何给Android应用添加分享到新浪微博
- android应用分享到新浪微博 开发小记
- Android使用ShareSDK分享到新浪微博
- Android分享新浪微博
- Android新浪微博分享
- Android新浪微博分享
- Android新浪微博分享
- 分享到新浪微博(二)
- ios 分享到新浪微博
- 制作android开机logo
- IE6、 IE7、Firefox CSS兼容技巧
- 关于技能,buff,装备的属性计算和更新的思考
- 第一部分-使用高速SPI以太网控制芯片W5200登录Telnet服务器
- 基于Eclipse的Hadoop应用开发环境配置
- Android分享到新浪微博
- 创业70%要做正 30%可变通
- 关于软件定制的问题
- 《So you wanna to be an Embedded Engineer》
- SIP概念区别 Session Dialog Transaction
- 练习题
- 人生就是不停的战斗
- Java并发编程-活性(五)
- Android recovery.img与boot.img简单对比