最近需要在开发的安卓项目中添加新浪微博一件关注的功能, 本来是一个很简单的功能, 就是调用新浪微博客户端显示用户信息的 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); 

上面代码的效果是:

  1. 如果用户没有安装新浪微博, 则直接调用浏览器打开那个地址;
  2. 如果用户安装了新浪微博, 则会显示下面的对话框让用户选择:

再次鄙视一下新浪微博的开放程度, 居然有这个功能都不开放。

本来打算用相同的方法在腾讯微信上做相同的功能, 却发现腾讯已经将显示微信号的 Activity 设置为私有的 android:exported="false" , 居然比新浪还要封闭, 真是无语了!

调用新浪微博显示用户信息相关推荐

  1. 用户控件(显示用户信息,修改用户名密码)的WebPart预览版

    *********************************************************************** *                            ...

  2. 用户输入自己的【姓名 年龄 爱好】 + 加CP【姓名 年龄 爱好】,点击按钮,页面显示该用户的信息 点击提交按钮,JSON显示用户信息+副本信息(副本初始值是{})

    本文主要是利用了BOM.DOM和json/js数据的转换等知识来综合操练的一个小例子 例子如下: 用户输入自己的[姓名 年龄 爱好] + 加CP[姓名 年龄 爱好],点击按钮,页面显示该用户的信息 点 ...

  3. 编写一个用户类(Sysuser),属性包括用户名、真实姓名、年龄、出生日期、密码,类方法中包含单独修改用户年龄、判断用户名和密码、显示用户信息功能,在用户测试类中(TestSysuser),根据用户输

    #本关任务: 编写一个用户类(Sysuser),属性包括用户名.真实姓名.年龄.出生日期.密码,类方法中包含单独修改用户年龄.判断用户名和密码.显示用户信息功能,在用户测试类中(TestSysuser ...

  4. android 从新浪微博获取用户信息,Android授权登录新浪微博获取用户个人信息

    Android授权登录新浪微博获取用户个人信息 Android授权登录新浪微博获取用户个 人信息 一.准备工作 我们都知道,无论是分享到新浪微博,还是获取新浪微博的用户信息,都离不开一样东西,那就是新 ...

  5. Linux 命令之 whois 命令-用于查找并显示用户信息

    文章目录 介绍 参考示例 介绍 whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没 ...

  6. Android授权登录新浪微博获取用户个人信息

    转载请注明出处:http://blog.csdn.net/u010214991/article/details/49149793 记得第一次发博文的时候我写了一篇文章,题为" Android ...

  7. 简单的java信息显示_JSP实现简单的用户登录并显示出用户信息的方法

    本文实例讲述了jsp实现简单的用户登录并显示出用户信息的方法.分享给大家供大家参考.具体实现方法如下: login.jsp string path = request.getcontextpath() ...

  8. python爬取新浪微博内容_python新浪微博爬虫,爬取微博和用户信息 (含源码及示例)...

    [实例简介] 这是新浪微博爬虫,采用python+selenium实现. 免费资源,希望对你有所帮助,虽然是傻瓜式爬虫,但是至少能运行.同时rar中包括源码及爬取的示例. 参考我的文章: http:/ ...

  9. uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...

    同学们大家好,我是小伊同学,上一节我们介绍了一些常用API,今天我们接着来学习一组API,那就是获取用户身份信息的API. 在微信小程序中,我们往往需要获取用户的身份信息,比如昵称.头像.性别.地区等 ...

  10. .NET 实现自定义ContextUser的Identity和Principal实现自定义用户信息,权限验证。

    .NET 实现自定义ContextUser的Identity和Principal 在传统的.NET中,我们可以通过 [csharp] view plaincopyprint? User.Identit ...

最新文章

  1. Smali插桩打日志
  2. 一个简单的HTTP通讯的例子,使用了CInternetSession,CHttpConnection,CHttpFile三个类
  3. Sequence in the Pocket
  4. Linux的cmake3的安装 cmake3编译安装成功了的 yum对于cmake3表示成功但实际没成功
  5. [USACO07NOV]牛继电器Cow Relays
  6. 【SAM】差异(P4248)
  7. 常用技巧 —— 位运算 —— 位运算基础
  8. 计算机怎么调整显示英语翻译,翻译词汇:计算机显示英语词汇 口译词汇
  9. java删除目录下符合条件的文件
  10. hdoj1116【欧拉回路】
  11. AJAX和select,绑定值,动态加载select的Item值,设置所选的值 (全都是客户端控件)...
  12. ext3日志模式---文件系统
  13. java画地图热力图_高德地图+热力图+AJAX(SSM)
  14. 2022最新全天狼星网络验证系统源码
  15. 干货分享!软考中高项案例分析10大管理领域理论背诵要点
  16. xp信息服务器iis5.0,XP中安装iis5.0/IIS6.0的详细操作方法步骤(图文教程)
  17. Material UI 带复选框表格获取选中值(索引)
  18. 秒懂设计模式之责任链模式(Chain Of Responsibility Pattern)
  19. element的table组件,表头合并(合并表头单元格)
  20. 前端想自学后找个小公司混口饭吃,需要学到什么程度?

热门文章

  1. fiddler实现将http请求的js转为本地的js文件
  2. 学习使用Ansj分词工具(一)
  3. 统计学学生学python吗_用Python学习统计学基础-4
  4. cmake错误:Could not find a package configuration file provided by 的一种解决方法
  5. 小米平板android版本,小米平板2发布:分Android和Wind 10两个版本
  6. 如何在Eclipse配置Tomcat
  7. 【Alpha】“北航社团帮”小程序v1.0发布声明
  8. 4、组件注册-自定义TypeFilter指定过滤规则
  9. 《TCP/IP 详解 卷1:协议》第 2 章:Internet 地址结构
  10. inittab 分析