调用android手机微博客户端发送微博

用隐式意图打开android手机中安装的微博客户端发送微博。

反编译一下新浪微博的AndroidManifest.xml,发送微博的EditActivity

		<activity
			android:theme="@7F0C000B"
			android:label="@7F0B0013"
			android:name="EditActivity"
			android:taskAffinity="com.sina.weibo.newblog"
			android:configChanges="0x000000A0"
			android:windowSoftInputMode="0x00000010"
			>
			<intent-filter
				android:label="@7F0B00ED"
				>
				<action
					android:name="android.intent.action.SEND"
					>
				</action>
				<category
					android:name="android.intent.category.DEFAULT"
					>
				</category>
				<data
					android:mimeType="image/*"
					>
				</data>
			</intent-filter>
			<intent-filter
				android:label="@7F0B00ED"
				>
				<action
					android:name="android.intent.action.SEND"
					>
				</action>
				<data
					android:mimeType="text/plain"
					>
				</data>
				<category
					android:name="android.intent.category.DEFAULT"
					>
				</category>
			</intent-filter>
			<intent-filter
				android:label="@7F0B00ED"
				>
				<action
					android:name="com.sina.weibo.intent.action.NEW_BLOG"
					>
				</action>
				<category
					android:name="android.intent.category.DEFAULT"
					>
				</category>
			</intent-filter>
		</activity>

 

反编译一下新浪微博的EditActivity

EditActivity中的oncreate方法中重要代码

    File localFile1 = Environment.getExternalStorageDirectory();
    StringBuilder localStringBuilder = new StringBuilder("tmp_bmp_");
    long l = SystemClock.currentThreadTimeMillis();
    String str3 = l + ".jpg";
    File localFile2 = new File(localFile1, str3);
    this.sdcardTempFile = localFile2;
    LauchMode localLauchMode = (LauchMode)getIntent().getSerializableExtra("com.sina.weibo.intent.extra.LAUCH_MODE");
    onLauchModeChanged(localLauchMode);


private void onLauchModeChanged(LauchMode paramLauchMode) 如果我们用的是android.intent.action.SEND即LauchMode.SHARE;

if ((!sudroid.TextUtils.isEmptyOrBlank(str1)) && (str1.equals("android.intent.action.SEND")))
      paramLauchMode = LauchMode.SHARE;


 

 str2 = getIntent().getStringExtra("android.intent.extra.TEXT");
    if (!android.text.TextUtils.isEmpty(str2))
    {
      setEditText(str2);
      Editable localEditable = this.etMblog.getText();
      int j = str2.length();
      Selection.setSelection(localEditable, j);
    }
    loadShareImage();


文字信息已经在EditActivity中显示出来了 接下来要loadShareImage了

  protected void loadShareImage()
  {
    Uri localUri = (Uri)getIntent().getParcelableExtra("android.intent.extra.STREAM");
    if (localUri == null)
      return;
    displayImageUri(localUri);
  }


获取到Uri之后就要 displayImageUri

private void displayImageUri(Uri paramUri)
  {
    this.mImageLoadingHelper.importBitmapFile(paramUri);
    if (!this.mImageLoadingHelper.hasBitmap())
    {
      Toast.makeText(this, 2131427539, 0).show();
      return;
    }
    displayInsertBitmap();
  }

 

如果Bitmap存在就displayInsertBitmap

        Bitmap localBitmap = this.mImageLoadingHelper.createThumbnail();
        localImageView1.setImageBitmap(localBitmap);


图片就展示在EditActivity中了

 

以上信息我们就可以写出调用EditActivity的隐式意图了。

        Intent intent = new Intent("android.intent.action.SEND");
        intent.setType("image/*");    
        intent.putExtra(Intent.EXTRA_SUBJECT, "分享");    
        intent.putExtra(Intent.EXTRA_TEXT, "终于可以了!!!");
        intent.putExtra(Intent.EXTRA_STREAM,Uri.parse("file:sdcard//8.png"));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
        startActivity(Intent.createChooser(intent, getTitle()));  

 

当发送完微博后,我放到sdcard中的图片会消失。也就是这张图片//sdcard//8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值