您的位置:首页 > 移动开发 > Android开发

Android使用Intent一键分享图片文字到腾讯、新浪、开心、人人等

2016-11-01 14:32 716 查看
现在分享应用很多,消耗研发与维护时间,增加项目成本,而且集成分享功能后我们的应用包会比以前要大几MB。其实有android的Intent可以满足分享文字和图片的需求,而且不增加应用包的大小。

[java] view plaincopy





/** 

 * 判断是否安装腾讯、新浪等指定的分享应用 

 * @param packageName 应用的包名 

 */  

public boolean checkInstallation(String packageName){  

      try {  

          this.getPackageManager().getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);  

          return true;  

      } catch (NameNotFoundException e) {  

          return false;  

      }  

}  

如果没有安装指定的应用,下面代码引导跳转去Google Play上某个应用的详细页面

[java] view plaincopy





Uri uri = Uri.parse("market://details?id=应用包名");  

Intent it = new Intent(Intent.ACTION_VIEW,uri);  

startActivity(it);  

用下面代码可以弹出一个分享列表让用户选择需要分享哪些文字内容。如果去调用setPackage方法的注销就会直接跳转新浪微博分享文字。

[java] view plaincopy





        Intent intent=new Intent(Intent.ACTION_SEND);   

        intent.setType("text/plain");  

//      intent.setPackage("com.sina.weibo");   

        intent.putExtra(Intent.EXTRA_SUBJECT, "分享");   

        intent.putExtra(Intent.EXTRA_TEXT, "你好 ");  

        intent.putExtra(Intent.EXTRA_TITLE, "我是标题");  

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   

        startActivity(Intent.createChooser(intent, "请选择"));   


     

分享单张图片,操作与分享文字类似。

[java] view plaincopy





        Intent shareIntent = new Intent(Intent.ACTION_SEND);  

        shareIntent.setType("image/*");  

        Uri uri = Uri.fromFile(getFileStreamPath("shared.png"));  

        shareIntent.putExtra(Intent.EXTRA_STREAM, uri);  

//  startActivity(Intent.createChooser(shareIntent, "请选择"));  

用Intent分享多张图片

[java] view plaincopy





/** 

 * 分享多张照片 

 */  

private void sendMultiple(){  

    Intent intent=new Intent(Intent.ACTION_SEND_MULTIPLE);  

    intent.setType("image/*");  

    intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, getUriListForImages());  

    intent.putExtra(Intent.EXTRA_SUBJECT, "分享");  

    intent.putExtra(Intent.EXTRA_TEXT, "你好 ");  

    intent.putExtra(Intent.EXTRA_TITLE, "我是标题");  

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   

    startActivity(Intent.createChooser(intent, "请选择"));   

}  

  

/**  

 * 设置需要分享的照片放入Uri类型的集合里  

 */  

private ArrayList<Uri> getUriListForImages() {  

       ArrayList<Uri> myList = new ArrayList<Uri>();  

       String imageDirectoryPath = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/DCIM/100ANDRO/";  

       File imageDirectory = new File(imageDirectoryPath);  

       String[] fileList = imageDirectory.list();  

       if(fileList.length != 0) {  

           for(int i=0; i<5; i++){  

               try{  

                   ContentValues values = new ContentValues(7);  

                   values.put(Images.Media.TITLE, fileList[i]);  

                   values.put(Images.Media.DISPLAY_NAME, fileList[i]);  

                   values.put(Images.Media.DATE_TAKEN, new Date().getTime());  

                   values.put(Images.Media.MIME_TYPE, "image/jpeg");  

                   values.put(Images.ImageColumns.BUCKET_ID, imageDirectoryPath.hashCode());  

                   values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileList[i]);  

                   values.put("_data", imageDirectoryPath + fileList[i]);  

                   ContentResolver contentResolver = getApplicationContext().getContentResolver();  

                   Uri uri = contentResolver.insert(Images.Media.EXTERNAL_CONTENT_URI, values);  

                   myList.add(uri);  

               } catch (Exception e) {  

                   e.printStackTrace();  

               }  

           }  

       }  

       return myList;  

   }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐