相关疑难解决方法(0)

Android 4.4(KitKat)上的Android Gallery为Intent.ACTION_GET_CONTENT返回不同的URI

在KitKat之前(或在新Gallery之前)Intent.ACTION_GET_CONTENT返回这样的URI

内容://媒体/外部/图像/媒体/ 3951.

使用ContentResolver和quering MediaStore.Images.Media.DATA返回文件URL.

但是在KitKat中,Gallery会返回一个URI(通过"Last"),如下所示:

内容://com.android.providers.media.documents/document/image:3951

我该如何处理?

android android-intent android-contentresolver android-gallery

212
推荐指数
9
解决办法
18万
查看次数

尝试从MediaStore读取时,Android KitKat securityException

java.lang.SecurityException:权限拒绝:从ProcessRecord打开提供程序com.android.providers.media.MediaDocumentsProvider {430b1748 29271:com.xxx/u0a88}(pid = 29271,uid = 10088)需要android.permission.MANAGE_DOCUMENTS或android. permission.MANAGE_DOCUMENTS

我已添加MANAGE_DOCUMENTSREAD_EXTERNAL_STORAGE权限,但我仍然收到此错误.违规代码:

 public static String getImagePath(HailoDriverApplication app, Uri uri) {
    Cursor cursor = null;
    if (uri == null) {
        return null;
    }
    try {
        cursor = app.getContentResolver().query(uri, new String[] {
            MediaStore.Images.Media.DATA
        }, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        if (cursor.moveToFirst()) {
            return cursor.getString(column_index);
        }
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

正如所要求的清单片段:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.x.x.x" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" /> …
Run Code Online (Sandbox Code Playgroud)

android android-4.4-kitkat

46
推荐指数
3
解决办法
3万
查看次数

权限拒绝:开放提供商

我创建了一个自定义内容提供程序,将由更多应用程序访问.我在我的提供程序AndroidManifest.xml文件中包含了权限TAG,在第二个应用程序中,我包含了uses-permissions标记,但没有成功.Logcat告诉我:

java.lang.SecurityException: Permission Denial: opening provider com.company.contentprovider.AplicacaoContentProvider requires READ_DATABASE or WRITE_DATABASE.
Run Code Online (Sandbox Code Playgroud)

我搜索过类似的问题,但似乎一切都是正确的.有任何想法吗 ?谢谢 !!!

这是我的提供者AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.contentprovider"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
<permission android:name="READ_DATABASE" android:label="@string/app_read"       android:protectionLevel="normal"></permission>
<permission android:name="WRITE_DATABASE" android:label="@string/app_write" android:protectionLevel="normal"></permission>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".CompanyProvider"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <provider android:name="AplicacaoContentProvider"
        android:authorities="com.company.contentprovider"
        android:exported="true"
        android:readPermission="@string/app_read"
        android:writePermission="@string/app_write"
       />
</application>
Run Code Online (Sandbox Code Playgroud)

这是我的第二个应用程序AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testeprovider"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />
<uses-permission android:name="android.permissions.READ_DATABASE"/>
<uses-permission …
Run Code Online (Sandbox Code Playgroud)

android

18
推荐指数
2
解决办法
4万
查看次数

java.lang.SecurityException:权限拒绝:打开提供程序com.android.providers.media.Media

我正进入(状态-

java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{f1d408f 5594:firebasejobscheduler.test.com.firbasejobschedulerdemo/u0a1227} (pid=5594, uid=11227) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
Run Code Online (Sandbox Code Playgroud)

 bm = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);
Run Code Online (Sandbox Code Playgroud)

我已检查过帖子,但无法解决。我该如何解决?

android securityexception android-permissions android-securityexception

6
推荐指数
1
解决办法
3708
查看次数

SecurityException:未从ACTION_IMAGE_CAPTURE找到关于uri的持久权限授予

我的应用程序使用相机拍摄照片并长期使用。

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri resultUri = null;
resultUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
      new ContentValues());
imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, resultUri);
startActivityForResult(imageCaptureIntent, IMAGE_CAPTURE_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)

但是,当我调用takePersistableUriPermission()时,将得到SecurityException:找不到持久的权限授予

我已经阅读了此“ 获取权限拒绝异常”。它非常适合ACTION_OPEN_DOCUMENT。如何获得Camera的永久许可?

java android android-camera android-permissions android-securityexception

3
推荐指数
1
解决办法
2825
查看次数