android.content.ContentResolver#openInputStream ( )源码实例Demo

下面列出了android.content.ContentResolver#openInputStream ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Favorite-Android-Client   文件: Global.java
public static InputStream editIMGSize(ContentResolver cr, Uri uri)
		throws FileNotFoundException {
	int[] size = new int[2];
	Bitmap bm;
	InputStream in = cr.openInputStream(uri);
	BitmapFactory.Options option = new BitmapFactory.Options();
	option.inPurgeable = true;
	option.inJustDecodeBounds = true;
	// BitmapFactory.decodeStream(in, null, option);
	bm = BitmapFactory.decodeStream(in, null, option);
	// 1is height
	size[1] = option.outHeight;
	size[0] = option.outWidth;
	//
	// if(editsize == true){
	if (size[1] > 4000)
		option.inSampleSize = 2;
	if (size[1] > 1024)
		option.inSampleSize = 4;
	// }
	//
	return in;

}
 
源代码2 项目: speechutils   文件: UtteranceRewriter.java
/**
 * Loads the rewrites from an URI using a ContentResolver.
 * The first line is a header.
 * Non-header lines are ignored if they start with '#'.
 */
private static CommandHolder loadRewrites(ContentResolver contentResolver, Uri uri) throws IOException {
    CommandHolder commandHolder = null;
    InputStream inputStream = contentResolver.openInputStream(uri);
    if (inputStream != null) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String line = reader.readLine();
        if (line != null) {
            int lineCounter = 0;
            commandHolder = new CommandHolder(line);
            while ((line = reader.readLine()) != null) {
                lineCounter++;
                commandHolder.addLine(line, lineCounter, null);
            }
        }
        inputStream.close();
    }
    if (commandHolder == null) {
        return new CommandHolder();
    }
    return commandHolder;
}
 
源代码3 项目: giffun   文件: BitmapUtils.java
/**
 * Decode image from uri using given "inSampleSize", but if failed due to out-of-memory then raise
 * the inSampleSize until success.
 */
private static Bitmap decodeImage(
    ContentResolver resolver, Uri uri, BitmapFactory.Options options)
    throws FileNotFoundException {
  do {
    InputStream stream = null;
    try {
      stream = resolver.openInputStream(uri);
      return BitmapFactory.decodeStream(stream, EMPTY_RECT, options);
    } catch (OutOfMemoryError e) {
      options.inSampleSize *= 2;
    } finally {
      closeSafe(stream);
    }
  } while (options.inSampleSize <= 512);
  throw new RuntimeException("Failed to decode image: " + uri);
}
 
源代码4 项目: kolabnotes-android   文件: PreviewFragment.java
void displayText(ActiveAccount account, String noteUID,Attachment attachment){
    textView.setVisibility(View.VISIBLE);

    if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
        ContentResolver contentResolver = getActivity().getContentResolver();
        Uri uri = attachmentRepository.getUriFromAttachment(account.getAccount(), account.getRootFolder(), noteUID, attachment);


        try(BufferedReader reader = new BufferedReader(new InputStreamReader(contentResolver.openInputStream(uri)))){

            StringBuilder text = new StringBuilder();
            String  line;
            while((line =reader.readLine()) != null){
                text.append(line);
                text.append(System.lineSeparator());
            }

            textView.setText(text);
        } catch (IOException e) {
            Log.e("displayText","Exception while opening file:",e);
        }
    }
}
 
/**
 * Imports a CA certificate from the given data URI.
 *
 * @param intent Intent that contains the CA data URI.
 */
private void importCaCertificateFromIntent(Intent intent) {
    if (getActivity() == null || getActivity().isFinishing()) {
        return;
    }
    Uri data = null;
    if (intent != null && (data = intent.getData()) != null) {
        ContentResolver cr = getActivity().getContentResolver();
        boolean isCaInstalled = false;
        try {
            InputStream certificateInputStream = cr.openInputStream(data);
            isCaInstalled = Util.installCaCertificate(certificateInputStream,
                    mDevicePolicyManager, mAdminComponentName);
        } catch (FileNotFoundException e) {
            Log.e(TAG, "importCaCertificateFromIntent: ", e);
        }
        showToast(isCaInstalled ? R.string.install_ca_successfully : R.string.install_ca_fail);
    }
}
 
源代码6 项目: MVPAndroidBootstrap   文件: BitmapUtil.java
/**
 * Get width and height of the bitmap specified with the {@link android.net.Uri}.
 *
 * @param resolver the resolver.
 * @param uri      the uri that points to the bitmap.
 * @return the size.
 */
public static Point getSize(ContentResolver resolver, Uri uri) {
    InputStream is = null;
    try {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        is = resolver.openInputStream(uri);
        BitmapFactory.decodeStream(is, null, options);
        int width = options.outWidth;
        int height = options.outHeight;
        return new Point(width, height);
    } catch (FileNotFoundException e) {
        Log.e(TAG, "target file (" + uri + ") does not exist.", e);
        return null;
    } finally {
        CloseableUtils.close(is);
    }
}
 
源代码7 项目: mobile-manager-tool   文件: BaseImageDownloader.java
/**
 * Retrieves {@link java.io.InputStream} of image by URI (image is accessed using {@link android.content.ContentResolver}).
 *
 * @param imageUri Image URI
 * @param extra    Auxiliary object which was passed to {@link com.nostra13.universalimageloader.core.DisplayImageOptions.Builder#extraForDownloader(Object)
 *                 DisplayImageOptions.extraForDownloader(Object)}; can be null
 * @return {@link java.io.InputStream} of image
 * @throws java.io.FileNotFoundException if the provided URI could not be opened
 */
protected InputStream getStreamFromContent(String imageUri, Object extra) throws FileNotFoundException {
	ContentResolver res = context.getContentResolver();

	Uri uri = Uri.parse(imageUri);
	if (isVideoUri(uri)) { // video thumbnail
		Long origId = Long.valueOf(uri.getLastPathSegment());
		Bitmap bitmap = MediaStore.Video.Thumbnails
				.getThumbnail(res, origId, MediaStore.Images.Thumbnails.MINI_KIND, null);
		if (bitmap != null) {
			ByteArrayOutputStream bos = new ByteArrayOutputStream();
			bitmap.compress(CompressFormat.PNG, 0, bos);
			return new ByteArrayInputStream(bos.toByteArray());
		}
	} else if (imageUri.startsWith(CONTENT_CONTACTS_URI_PREFIX)) { // contacts photo
		return ContactsContract.Contacts.openContactPhotoInputStream(res, uri);
	}

	return res.openInputStream(uri);
}
 
源代码8 项目: DoraemonKit   文件: ContactsPhotoRequestHandler.java
private InputStream getInputStream(Request data) throws IOException {
  ContentResolver contentResolver = context.getContentResolver();
  Uri uri = data.uri;
  switch (matcher.match(uri)) {
    case ID_LOOKUP:
      uri = ContactsContract.Contacts.lookupContact(contentResolver, uri);
      if (uri == null) {
        return null;
      }
      // Resolved the uri to a contact uri, intentionally fall through to process the resolved uri
    case ID_CONTACT:
      if (SDK_INT < ICE_CREAM_SANDWICH) {
        return openContactPhotoInputStream(contentResolver, uri);
      } else {
        return ContactPhotoStreamIcs.get(contentResolver, uri);
      }
    case ID_THUMBNAIL:
    case ID_DISPLAY_PHOTO:
      return contentResolver.openInputStream(uri);
    default:
      throw new IllegalStateException("Invalid uri: " + uri);
  }
}
 
源代码9 项目: styT   文件: loveviayou.java
public static InputStream GetISfromIntent(Intent u, Activity con) {
    ContentResolver cr = con.getContentResolver();
    try {
        return cr.openInputStream(u.getData());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return null;
    }

}
 
源代码10 项目: giffun   文件: BitmapUtils.java
/** Decode image from uri using "inJustDecodeBounds" to get the image dimensions. */
private static BitmapFactory.Options decodeImageForOption(ContentResolver resolver, Uri uri)
    throws FileNotFoundException {
  InputStream stream = null;
  try {
    stream = resolver.openInputStream(uri);
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeStream(stream, EMPTY_RECT, options);
    options.inJustDecodeBounds = false;
    return options;
  } finally {
    closeSafe(stream);
  }
}
 
源代码11 项目: BigApp_Discuz_Android   文件: ImageLoader.java
/**
 * From Content
 *
 * @param imageUri
 * @param imageView
 * @throws IOException
 */
protected void displayImageFromContent(String imageUri, ImageView imageView) throws FileNotFoundException {
    ContentResolver res = context.getContentResolver();
    Uri uri = Uri.parse(imageUri);
    InputStream inputStream = res.openInputStream(uri);
    Bitmap bitmap = BitmapUtils.loadFromInputStream(inputStream, null);
    imageView.setImageBitmap(bitmap);

    return;
}
 
源代码12 项目: framework   文件: BitmapUtils.java
/**
 * Read bytes.
 *
 * @param uri      the uri
 * @param resolver the resolver
 * @return the byte[]
 * @throws IOException Signals that an I/O exception has occurred.
 */
private static byte[] readBytes(Uri uri, ContentResolver resolver, boolean thumbnail)
        throws IOException {
    // this dynamically extends to take the bytes you read
    InputStream inputStream = resolver.openInputStream(uri);
    ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();

    if (!thumbnail) {
        // this is storage overwritten on each iteration with bytes
        int bufferSize = 1024;
        byte[] buffer = new byte[bufferSize];

        // we need to know how may bytes were read to write them to the
        // byteBuffer
        int len = 0;
        while ((len = inputStream.read(buffer)) != -1) {
            byteBuffer.write(buffer, 0, len);
        }
    } else {
        Bitmap imageBitmap = BitmapFactory.decodeStream(inputStream);
        int thumb_width = imageBitmap.getWidth() / 2;
        int thumb_height = imageBitmap.getHeight() / 2;
        if (thumb_width > THUMBNAIL_SIZE) {
            thumb_width = THUMBNAIL_SIZE;
        }
        if (thumb_width == THUMBNAIL_SIZE) {
            thumb_height = ((imageBitmap.getHeight() / 2) * THUMBNAIL_SIZE)
                    / (imageBitmap.getWidth() / 2);
        }
        imageBitmap = Bitmap.createScaledBitmap(imageBitmap, thumb_width, thumb_height, false);
        imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteBuffer);
    }
    // and then we can return your byte array.
    return byteBuffer.toByteArray();
}
 
源代码13 项目: indigenous-android   文件: Base.java
/**
 * Get file data from uri or bitmap.
 */
public byte[] getFileData(Bitmap bitmap, Boolean scale, Uri uri, String mime) {

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

    if (scale) {
        int ImageQuality = 80;
        // Default quality. The preference is stored as a string, but cast it to an integer.
        String qualityPreference = Preferences.getPreference(this, "pref_key_image_quality", Integer.toString(ImageQuality));
        if (parseInt(qualityPreference) <= 100 && parseInt(qualityPreference) > 0) {
            ImageQuality = parseInt(qualityPreference);
        }

        switch (mime) {
            case "image/png":
                bitmap.compress(Bitmap.CompressFormat.PNG, ImageQuality, byteArrayOutputStream);
                break;
            case "image/jpg":
            default:
                bitmap.compress(Bitmap.CompressFormat.JPEG, ImageQuality, byteArrayOutputStream);
                break;
        }
    }
    else {
        ContentResolver cR = this.getContentResolver();
        try {
            InputStream is = cR.openInputStream(uri);
            final byte[] b = new byte[8192];
            for (int r; (r = is.read(b)) != -1;) {
                byteArrayOutputStream.write(b, 0, r);
            }
        }
        catch (Exception ignored) { }
    }

    return byteArrayOutputStream.toByteArray();
}
 
源代码14 项目: UltimateAndroid   文件: ImageUtils_Deprecated.java
/**
 * 解析Bitmap的公用方法.
 *
 * @param path
 * @param data
 * @param context
 * @param uri
 * @param options
 * @return
 */
public static Bitmap decode(String path, byte[] data, Context context,
                            Uri uri, BitmapFactory.Options options) {

    Bitmap result = null;

    if (path != null) {

        result = BitmapFactory.decodeFile(path, options);

    } else if (data != null) {

        result = BitmapFactory.decodeByteArray(data, 0, data.length,
                options);

    } else if (uri != null) {
        //uri不为空的时候context也不要为空.
        ContentResolver cr = context.getContentResolver();
        InputStream inputStream = null;

        try {
            inputStream = cr.openInputStream(uri);
            result = BitmapFactory.decodeStream(inputStream, null, options);
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    return result;
}
 
源代码15 项目: PictureSelector   文件: SkiaImageDecoder.java
@Override
public Bitmap decode(Context context, Uri uri) throws Exception {
    String uriString = uri.toString();
    BitmapFactory.Options options = new BitmapFactory.Options();
    Bitmap bitmap;
    options.inPreferredConfig = Bitmap.Config.RGB_565;
    if (uriString.startsWith(RESOURCE_PREFIX)) {
        Resources res;
        String packageName = uri.getAuthority();
        if (context.getPackageName().equals(packageName)) {
            res = context.getResources();
        } else {
            PackageManager pm = context.getPackageManager();
            res = pm.getResourcesForApplication(packageName);
        }

        int id = 0;
        List<String> segments = uri.getPathSegments();
        int size = segments.size();
        if (size == 2 && segments.get(0).equals("drawable")) {
            String resName = segments.get(1);
            id = res.getIdentifier(resName, "drawable", packageName);
        } else if (size == 1 && TextUtils.isDigitsOnly(segments.get(0))) {
            try {
                id = Integer.parseInt(segments.get(0));
            } catch (NumberFormatException ignored) {
            }
        }

        bitmap = BitmapFactory.decodeResource(context.getResources(), id, options);
    } else if (uriString.startsWith(ASSET_PREFIX)) {
        String assetName = uriString.substring(ASSET_PREFIX.length());
        bitmap = BitmapFactory.decodeStream(context.getAssets().open(assetName), null, options);
    } else if (uriString.startsWith(FILE_PREFIX)) {
        bitmap = BitmapFactory.decodeFile(uriString.substring(FILE_PREFIX.length()), options);
    } else {
        InputStream inputStream = null;
        try {
            ContentResolver contentResolver = context.getContentResolver();
            inputStream = contentResolver.openInputStream(uri);
            bitmap = BitmapFactory.decodeStream(inputStream, null, options);
        } finally {
            if (inputStream != null) {
                try { inputStream.close(); } catch (Exception e) { }
            }
        }
    }
    if (bitmap == null) {
        throw new RuntimeException("Skia image region decoder returned null bitmap - image format may not be supported");
    }
    return bitmap;
}
 
@Override
@NonNull
public Point init(Context context, @NonNull Uri uri) throws Exception {
    String uriString = uri.toString();
    if (uriString.startsWith(RESOURCE_PREFIX)) {
        Resources res;
        String packageName = uri.getAuthority();
        if (context.getPackageName().equals(packageName)) {
            res = context.getResources();
        } else {
            PackageManager pm = context.getPackageManager();
            res = pm.getResourcesForApplication(packageName);
        }

        int id = 0;
        List<String> segments = uri.getPathSegments();
        int size = segments.size();
        if (size == 2 && segments.get(0).equals("drawable")) {
            String resName = segments.get(1);
            id = res.getIdentifier(resName, "drawable", packageName);
        } else if (size == 1 && TextUtils.isDigitsOnly(segments.get(0))) {
            try {
                id = Integer.parseInt(segments.get(0));
            } catch (NumberFormatException ignored) {
            }
        }

        decoder = BitmapRegionDecoder.newInstance(context.getResources().openRawResource(id), false);
    } else if (uriString.startsWith(ASSET_PREFIX)) {
        String assetName = uriString.substring(ASSET_PREFIX.length());
        decoder = BitmapRegionDecoder.newInstance(context.getAssets().open(assetName, AssetManager.ACCESS_RANDOM), false);
    } else if (uriString.startsWith(FILE_PREFIX)) {
        decoder = BitmapRegionDecoder.newInstance(uriString.substring(FILE_PREFIX.length()), false);
    } else {
        InputStream inputStream = null;
        try {
            ContentResolver contentResolver = context.getContentResolver();
            inputStream = contentResolver.openInputStream(uri);
            if (inputStream == null) {
                throw new Exception("Content resolver returned null stream. Unable to initialise with uri.");
            }
            decoder = BitmapRegionDecoder.newInstance(inputStream, false);
        } finally {
            if (inputStream != null) {
                try { inputStream.close(); } catch (Exception e) { /* Ignore */ }
            }
        }
    }
    return new Point(decoder.getWidth(), decoder.getHeight());
}
 
源代码17 项目: openinwa   文件: MainFragment.java
@Override
public void onStart() {
    Intent intent = getActivity().getIntent();
    String action = intent.getAction();
    if (Intent.ACTION_SEND.equals(action)) {
        String type = intent.getType();
        if ("text/x-vcard".equals(type)) {
            isShare = true;
            Uri contactUri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
            ContentResolver cr;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
                cr = this.getContext().getContentResolver();
            else cr = getActivity().getContentResolver();

            String data = "";
            try {
                InputStream stream = cr.openInputStream(contactUri);
                StringBuffer fileContent = new StringBuffer("");
                int ch;
                while ((ch = stream.read()) != -1)
                    fileContent.append((char) ch);
                stream.close();
                data = new String(fileContent);

            } catch (Exception e) {
                e.printStackTrace();
            }

            for (String line : data.split("\n")) {
                line = line.trim();
                //todo: support other phone numbers from vcard
                if (line.startsWith("TEL;CELL:")) {
                    number = line.substring(9);
                    mPhoneInput.setPhoneNumber(number);
                }
            }
        }
    } else if (Intent.ACTION_DIAL.equals(action)) {
        number = intent.getData().toString().substring(3);
        Log.d(MainFragment.class.getName(), "onStart: number==" + number);
        mPhoneInput.setPhoneNumber(number);
    }
    super.onStart();
}
 
源代码18 项目: DeviceConnect-Android   文件: MediaStoreContent.java
@Override
public InputStream open(final Context context) throws IOException {
    ContentResolver resolver = context.getContentResolver();
    return resolver.openInputStream(mMediaUri);
}
 
源代码19 项目: RxTools-master   文件: SkiaImageDecoder.java
@Override
public Bitmap decode(Context context, Uri uri) throws Exception {
    String uriString = uri.toString();
    BitmapFactory.Options options = new BitmapFactory.Options();
    Bitmap bitmap;
    options.inPreferredConfig = Bitmap.Config.RGB_565;
    if (uriString.startsWith(RESOURCE_PREFIX)) {
        Resources res;
        String packageName = uri.getAuthority();
        if (context.getPackageName().equals(packageName)) {
            res = context.getResources();
        } else {
            PackageManager pm = context.getPackageManager();
            res = pm.getResourcesForApplication(packageName);
        }

        int id = 0;
        List<String> segments = uri.getPathSegments();
        int size = segments.size();
        if (size == 2 && segments.get(0).equals("drawable")) {
            String resName = segments.get(1);
            id = res.getIdentifier(resName, "drawable", packageName);
        } else if (size == 1 && TextUtils.isDigitsOnly(segments.get(0))) {
            try {
                id = Integer.parseInt(segments.get(0));
            } catch (NumberFormatException ignored) {
            }
        }

        bitmap = BitmapFactory.decodeResource(context.getResources(), id, options);
    } else if (uriString.startsWith(ASSET_PREFIX)) {
        String assetName = uriString.substring(ASSET_PREFIX.length());
        bitmap = BitmapFactory.decodeStream(context.getAssets().open(assetName), null, options);
    } else if (uriString.startsWith(FILE_PREFIX)) {
        bitmap = BitmapFactory.decodeFile(uriString.substring(FILE_PREFIX.length()), options);
    } else {
        InputStream inputStream = null;
        try {
            ContentResolver contentResolver = context.getContentResolver();
            inputStream = contentResolver.openInputStream(uri);
            bitmap = BitmapFactory.decodeStream(inputStream, null, options);
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (Exception e) {
                }
            }
        }
    }
    if (bitmap == null) {
        throw new RuntimeException("Skia image region decoder returned null bitmap - image format may not be supported");
    }
    return bitmap;
}
 
源代码20 项目: Roid-Library   文件: BaseImageDownloader.java
/**
 * Retrieves {@link InputStream} of image by URI (image is accessed using
 * {@link ContentResolver}).
 * 
 * @param imageUri Image URI
 * @param extra Auxiliary object which was passed to
 *            {@link DisplayImageOptions.Builder#extraForDownloader(Object)
 *            DisplayImageOptions.extraForDownloader(Object)}; can be null
 * @return {@link InputStream} of image
 * @throws FileNotFoundException if the provided URI could not be opened
 */
protected InputStream getStreamFromContent(String imageUri, Object extra) throws FileNotFoundException {
    ContentResolver res = context.getContentResolver();
    Uri uri = Uri.parse(imageUri);
    return res.openInputStream(uri);
}