android分享到新浪微博客户端吗,Android调用手机新浪微博客户端分享
通過Action_Send以及Intent.createChoose()調用系統分享功能時,是可以顯示當前手機上已安裝的能分享的客戶端列表,當然,開發者也可以指定單獨某一個平臺來分享,代碼如下:
public void showSinaDialog() {
Intent weiboIntent = new Intent(Intent.ACTION_SEND);
weiboIntent.setType("text/plain");
PackageManager pm = getPackageManager();
List matches = pm.queryIntentActivities(weiboIntent,
PackageManager.MATCH_DEFAULT_ONLY);
String packageName = "com.sina.weibo";
ResolveInfo info = null;
for (ResolveInfo each : matches) {
String pkgName = each.activityInfo.applicationInfo.packageName;
if (packageName.equals(pkgName)) {
info = each;
break;
}
}
if (info == null) {
new AlertDialog.Builder(MainActivity.this)
.setTitle("提示")
.setMessage("您還沒有安裝新浪微博,是否前往瀏覽器下載?")
.setPositiveButton("確定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
Uri uri = Uri
.parse("http://app.sina.cn/appdetail.php?appID=84560");
Intent intent = new Intent(
Intent.ACTION_VIEW, uri);
startActivity(intent);
dialog.dismiss();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
}).show();
} else {
weiboIntent.setClassName(packageName, info.activityInfo.name);
weiboIntent.putExtra(Intent.EXTRA_TEXT, "分享內容"
+ "http://blog.csdn.net/diyangxia");
}
startActivity(weiboIntent);
}
這段代碼實現的主要功能就是調用系統的分享功能,并根據新浪微博的包名"com.sina.weibo",直接跳轉到新浪微博分享界面,而不用經過原來的分享列表,并且判斷如果用戶手機終端上沒有安裝新浪微博客戶端,那么就跳轉到瀏覽器的新浪微博下載頁面,這個下載鏈接是新浪微博SDK中給出的。以此類推,如果想通過系統分享調用騰訊微博、人人等社交軟件的分享,只要把com.sina.weibo的包名即可。
如果當前手機終端上未安裝新浪微博客戶端,則如圖下所示:
如果已安裝了新浪微博客戶端,那么就會跳轉到發博器界面,如圖下所示:
當然也可以通過設置type和stream來分享圖片,如下代碼:
weiboIntent.setType("image/*");
weiboIntent.putExtra(Intent.EXTRA_STREAM,
Uri.parse("sdcard/appIcon.png"));//SD卡下圖片的絕對路徑
總結
以上是生活随笔為你收集整理的android分享到新浪微博客户端吗,Android调用手机新浪微博客户端分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 捷信贷款可以贷几次
- 下一篇: 余额宝的冻结金可以用吗