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

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

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

更多相关文章

  1. Android短信的发送和广播接收者实现短信的监听
  2. android 3G pppd 调试记录
  3. Android发送SOAP数据给服务器调用webservice,实现手机号归属地查
  4. Android之系统给我们提供的常见的Activity
  5. android客户端控制树莓派GPIO点亮LED灯
  6. Android(安卓)常用开发术语
  7. android程序实现简单拨号器功能
  8. 【Android(安卓)设计】:启航_ 创作意图 | 设计原则
  9. Android(安卓)新浪微博代码

随机推荐

  1. 在android中使用webrtc的噪声抑制模块
  2. 必须在调用加载前设置广告尺寸和广告单元
  3. Android 菜单动态变化【添加或去除】
  4. android中保存一个ArrayList到SharedPref
  5. 如何禁用主页键
  6. 2012第19周移动应用动态
  7. android 获取正在运行的应用程序列表
  8. LinearLayout分隔符未显示[重复]
  9. Android UI(二)DridView的菜单
  10. Android开发入门之为应用添加多个Activit