调用新浪微博显示用户信息
2015-01-16 03:40
169 查看
最近需要在开发的安卓项目中添加新浪微博一件关注的功能, 本来是一个很简单的功能, 就是调用新浪微博客户端显示用户信息的 Activity
, 然后用户就点击关注按钮就可以了。 本来是很简单的功能, 可以网上找到的几乎都是 JS 的代码, 或者是要注册新浪微博 SDK 的代码, 这么简单的功能应该不用注册什么 SDK 的, 也不想参合什么 JS , 只要研究一下新浪微博客户端的 Activity
就可以了。
首先我们需要使用 AXMLPrinter2.jar 反编译新浪微博的 AndroidManifest.xml, 从中查找显示用户信息的页面, 反编译代码如下:
java -jar AXMLPrinter2.jar AndroidManifest.xml > a.xml
打开反编译出来的
a.xml, 搜索
userinfo, 很幸运的找到了
UserInfoActivity,如下所示:
<activity android:theme="@7F0B0029" android:name="UserInfoActivity" android:configChanges="0x000000A0"> <intent-filter> <action android:name="android.intent.action.VIEW"> </action> <category android:name="android.intent.category.DEFAULT"> </category> <categoryandroid:name="android.intent.category.BROWSABLE"> </category> <data android:scheme="sinaweibo" android:host="userinfo"> </data> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"> </action> <category android:name="android.intent.category.DEFAULT"> </category> <category android:name="android.intent.category.BROWSABLE"> </category> <data android:scheme="http" android:host="weibo.cn" android:path="/qr/userinfo"> </data> </intent-filter> </activity>
UserInfoActivity 注册了两个
intent-filter, 第一个注册的 url 是
sinaweibo://userinfo?uid=3444956000, 有了这个信息, 通过如下的代码调用新浪微博客户端显示用户信息了:
var intent = new Intent(Intent.ActionView); var uri = Android.Net.Uri.Parse("sinaweibo://userinfo?uid=3444956000"); intent.SetData(uri); var chooseIntent = Intent.CreateChooser(intent, "Weibo"); StartActivity(chooseIntent);
不过, 上面代码的前提是用户已经安装了新浪微博客户端,否则运行会报错, 幸好还有第二个, 我们可以使用下面的代码进行调用:
var intent = new Intent(Intent.ActionView); var uri = Android.Net.Uri.Parse("http://weibo.cn/qr/userinfo?uid=3444956000"); intent.SetData(uri); var chooseIntent = Intent.CreateChooser(intent, "Weibo"); StartActivity(chooseIntent);
上面代码的效果是:
如果用户没有安装新浪微博, 则直接调用浏览器打开那个地址;
如果用户安装了新浪微博, 则会显示下面的对话框让用户选择:
再次鄙视一下新浪微博的开放程度, 居然有这个功能都不开放。
本来打算用相同的方法在腾讯微信上做相同的功能, 却发现腾讯已经将显示微信号的 Activity 设置为私有的
android:exported="false", 居然比新浪还要封闭, 真是无语了!
相关文章推荐
- Android调用新浪微博显示用户信息
- Jquery 类似新浪微博,鼠标移到头像,用浮动窗口显示用户信息,已做成一个jquery插件
- 怎样在浏览器状态栏文字显示用户信息
- PHP5调用win系统com组件查看用户信息
- 域用户登录时显示“指定域的名称或安全标识SID与该域的信任信息不一致”解决方案
- C#调用“数据链接属性”对话框 显示所有表与所有用户
- 如何为新注册的Notes用户登陆客户端时显示欢迎信息
- 如果在InfoPath组合框的列表记录中没有对应用户录入的条目信息内容,就显示一个信息提示框
- SQL Server 2000 Reporting Services: 怎样根据用户的语言偏好显示本地化的信息
- 域用户登录时显示“指定域的名称或安全标识SID与该域的信任信息不一致”解决方案
- 活动目录实战系列十一(脚本实现用户登录显示信息)
- JQuery ajax 如何设置同步调用(同时只能触发一个函数) 解决与层显示信息时候的冲突问题
- Asp.net2.0身份验证技术学习入门---新用户注册,登录,显示用户信息
- 四.用户管理页面(显示所有的用户信息,同时为用户的添加,编辑,修改密码,删除,修改权限等功能提供相应的链接) UserMange.aspx
- MOSS网站与我的网站显示的登录用户信息不同
- MFC/DLL 编程时用独立的控制台窗口显示用户自定义调试信息
- [JWF][API] 显示当前所有用户信息
- Asp.net2.0身份验证技术学习入门---新用户注册,登录,显示用户信息
- 地磅称量系统之(27~29)实现主界面显示用户的登录信息和日期时间星期的代码
- ASP.NET - 如何:向匿名用户和登录用户显示不同的信息