完美实现同时分享图片和文字(Intent.ACTION

新浪微博拉起客户端分享——完美实现同时分享图片和文字(Intent.ACTION_SEND)

点击事件后处理:

private void  share(String content, Uri uri){if (AppUtils.isAppExist(mContext, "com.sina.weibo")) {Log.i("TAG", "—————-com.sina.weibo.ComposerDispatchActivity");Intent intent = new Intent(Intent.ACTION_SEND);intent.setPackage("com.sina.weibo"); //intent.setClassName("com.sina.weibo", "com.sina.weibo.ComposerDispatchActivity");if (uri == null ) {intent.setType("text/plain"); // 纯文本} else {File f = new File(“/mnt/sdcard/”);if (f != null && f.exists() && f.isFile()) {intent.setType("image/*");Uri u = Uri.fromFile(f);intent.putExtra(Intent.EXTRA_STREAM, u);}}intent.putExtra(Intent.EXTRA_SUBJECT, mTitle);intent.putExtra(Intent.EXTRA_TEXT, mShareDetail + "!点击:" + mWebUrl);//intent.putExtra("com.weibo.android.content", mTitle);//intent.putExtra("com.sina.weibo.android.content", mShareDetail + "!点击:" + mWebUrl);mContext.startActivity(intent);} else {Toast.makeText(ShareActivity.this, "您尚未安装新浪微博", Toast.LENGTH_SHORT).show();}}

简直把我坑惨了,一直以为通过系统的分享需要知道第三方接收action的类,本文对应的就是ComposerDispatchActivity,实际上是没有必要进行intent.setClassName("com.sina.weibo", "com.sina.weibo.ComposerDispatchActivity");这个方式来实现的,因为你不知道第三方接收的键值是什么,,直接

Intent intent = new Intent(Intent.ACTION_SEND);intent.setPackage("com.sina.weibo"); 这样就搞定了!!!!

不过最好加上try catch,因为可能No Activity found to handle Intent { act=android.intent.action.SEND flg=0x1 pkg=com.sina.weibo (has clip) (has extras) }

如下:

if (AppUtils.isAppExist(mContext, "com.sina.weibo")) {//可能No Activity found to handle Intent { act=android.intent.action.SEND flg=0x1 pkg=com.sina.weibo (has clip) (has extras) }try {<pre name="code" class="javascript">Intent intent = new Intent(Intent.ACTION_SEND);intent.setPackage("com.sina.weibo"); //intent.setClassName("com.sina.weibo", "com.sina.weibo.ComposerDispatchActivity");if (uri == null ) {intent.setType("text/plain"); // 纯文本} else {File f = new File(“/mnt/sdcard/”);if (f != null && f.exists() && f.isFile()) {intent.setType("image/*");Uri u = Uri.fromFile(f);intent.putExtra(Intent.EXTRA_STREAM, u);}}intent.putExtra(Intent.EXTRA_SUBJECT, mTitle);intent.putExtra(Intent.EXTRA_TEXT, mShareDetail + "!点击:" + mWebUrl);//intent.putExtra("com.weibo.android.content", mTitle);//intent.putExtra("com.sina.weibo.android.content", mShareDetail + "!点击:" + mWebUrl);mContext.startActivity(intent);} catch (Exception e) {Toast.makeText(ShareActivity.this, "分享失败", Toast.LENGTH_SHORT).show();e.printStackTrace();}} else {Toast.makeText(ShareActivity.this, "您尚未安装新浪微博", Toast.LENGTH_SHORT).show();}

这样就防止异常了

转载注明出处:

勇于接受自己的不完美,认清自己不足的地方,

完美实现同时分享图片和文字(Intent.ACTION

相关文章:

你感兴趣的文章:

标签云: