def _parse_content( # pylint: disable=too-many-arguments uri, projection, selection, selection_args, sort_order, index_all=False ): ''' Parser for ``content://`` URI returned by some Android resources. .. versionadded:: 1.4.0 ''' result = None resolver = mActivity.getContentResolver() read = Intent.FLAG_GRANT_READ_URI_PERMISSION write = Intent.FLAG_GRANT_READ_URI_PERMISSION persist = Intent.FLAG_GRANT_READ_URI_PERMISSION # grant permission for our activity mActivity.grantUriPermission( mActivity.getPackageName(), uri, read | write | persist ) if not index_all: cursor = resolver.query( uri, projection, selection, selection_args, sort_order ) idx = cursor.getColumnIndex(projection[0]) if idx != -1 and cursor.moveToFirst(): result = cursor.getString(idx) else: result = [] cursor = resolver.query( uri, projection, selection, selection_args, sort_order ) while cursor.moveToNext(): for idx in range(cursor.getColumnCount()): result.append(cursor.getString(idx)) result = '/'.join(result) return result