标签: android-securityexception

Android M 6.0 - SecurityException试图删除帐户

我有一个使用Android AccountManager(包名:com.mycompany.accounts)的应用程序,它将帐户添加到设备并提供登录屏幕.我有另一个应用程序(com.mycomp.actualapp),它使用第一个应用程序添加/删除帐户.

我可以使用清单中的以下权限在Pre Marshmallow设备上成功添加和删除帐户:

<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
Run Code Online (Sandbox Code Playgroud)

使用sdk 22进行编译并使用sdk 22进行编译时,应自动授予这些权限.以下代码:

      accountManager.removeAccount(getAccount(), activity, new AccountManagerCallback<Bundle>() {
        @Override
        public void run(AccountManagerFuture<Bundle> accountManagerFuture) {
            try {
                Bundle bundle = accountManagerFuture.getResult();
                boolean success = bundle.getBoolean(AccountManager.KEY_BOOLEAN_RESULT);
                if (success) {
                    Toast.makeText(activity, activity.getString(R.string.successfully_loggedout), Toast.LENGTH_LONG).show();
                    afterLogoutSuccess(activity);

                } else {
                    Toast.makeText(activity.getApplicationContext(), activity.getString(R.string.failed_to_logout), Toast.LENGTH_LONG).show();
                }
                onLogoutListener.onLogoutFinished(success);
                return;
            } catch (OperationCanceledException e) {
                Log.e(TAG,"Operation cancelled exception:", e);
            } catch (IOException e) {
                Log.e(TAG, "IOException:", e);
            } catch (AuthenticatorException e) {
                Log.e(TAG, "AuthenticatorException:", e);
            }
            onLogoutListener.onLogoutFinished(false);

        }
    }, null); …
Run Code Online (Sandbox Code Playgroud)

permissions android android-account android-securityexception android-6.0-marshmallow

7
推荐指数
1
解决办法
2548
查看次数

Android SecurityException:管理员不拥有配置文件

我有一个设备管理器应用程序,并且尝试使用自API 21起可用的DevicePolicyManager类的setScreenCaptureDisabled(..)函数。

DevicePolicyManager pManager = (android.app.admin.DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
pManager.setScreenCaptureDisabled(admin.getReceiverName(), true);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

03-30 13:50:24.623: E/AndroidRuntime(11564): 
java.lang.SecurityException: Admin 
ComponentInfo{com.example.xxv/com.example.xxv.DeviceAdminReceiver} 
does not own the profile
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

如果需要任何许可,请说明一下。

android android-activity android-securityexception android-5.0-lollipop

6
推荐指数
2
解决办法
6078
查看次数

授予FileProvider的uri权限会产生SecurityException

我有2个应用程序 - 演示专业版.Demo有一个内容提供商,当安装Pro时,它需要从演示提供商传输所有文件.

演示应用程序(提供商):

<provider
            android:name="***.provider.InternalStorageProvider"
            android:authorities="***.demo.storage.int.provider"
            android:exported="false"
            android:syncable="true"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/int_storage_paths" />

</provider>
Run Code Online (Sandbox Code Playgroud)

专业应用(消费者):

  • 实验1:

    ParcelFileDescriptor pfd = cr.openFileDescriptor(exposedFileUri,"r");
    FileInputStream input = new FileInputStream(pfd.getFileDescriptor());

java.lang.SecurityException:Permission Denial:从ProcessRecord打开提供者 .provider.InternalStorageProvider {9c85875 10734:/u0a61}(pid = 10734,uid = 10061),不从uid 10062导出

  • 实验2:

    活动活动= getActivity(); activity.grantUriPermission(activity.getPackageName(),exposedFileUri,Intent.FLAG_GRANT_READ_URI_PERMISSION);

    ParcelFileDescriptor pfd = cr.openFileDescriptor(exposedFileUri,"r"); FileInputStream input = new FileInputStream(pfd.getFileDescriptor());

java.lang.SecurityException:Uid 10061没有权限uri 0 @ content://***.demo.storage.int.provider/db/file1

InternalStorageProvider是正常的副本FileProvider.但这并不重要,因为执行甚至无法达到它.在调用之前抛出异常.请注意,不涉及选择器活动和意图.消费者尝试直接从已知的uri打开文件,没有选择器.我发现的大多数例子都在使用,Intent.FLAG_GRANT_READ_URI_PERMISSION但我根本不使用意图.

我应该如何正确授予消费者uri权限?

android android-contentprovider android-permissions android-securityexception

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

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
查看次数

双应用无法访问存储路径/storage/emulated/999/Download/somefile.pdf

我正在尝试将文件从服务器下载到Downloadandorid 的文件夹中

正如预期的那样工作正常

问题

当用户克隆我的应用程序(双应用程序)时,克隆的应用程序(第二个应用程序)抛出SecurityException: Unsupported path /storage/emulated/999/Download/somefile.pdf

研究

设备:红米5

应用程序:文件管理器(系统应用程序)

我找到了 2 个选项

  1. 内部存储器
  2. 双应用程序存储(它还具有下载文件夹和其他应用程序文件夹,如 Whatsapp)

仍然我的应用程序抛出SecurityException

android android-securityexception

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

Android SecurityException 访问内容

我开发了一个 Android 应用程序,它从设备读取文件,将其复制到应用程序的内部存储中并进行分析。对于我的几乎 100% 的用户/设备来说,它一直工作正常,但从几个月前开始,对于某些特定的用户/设备来说,读取文件时会崩溃。

这就是我请求权限的方式。

AndroidManifest.xml

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    ...
Run Code Online (Sandbox Code Playgroud)

在 MainActivity.java 上

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUESTS);
    }
  }

  ...
}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

  super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  if (requestCode == PERMISSIONS_REQUESTS) {

    if ((grantResults.length == 0) || …
Run Code Online (Sandbox Code Playgroud)

android android-permissions android-securityexception

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

Android PdfRenderer 抛出 SecurityException - 无法创建错误 4 的文档

我正在尝试使用 PdfRenderer android api 呈现一些页面。我的一些用户开始看到此错误:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1337, result=-1, data=Intent { dat=file:///storage/emulated/0/Download/Jul-Aug-2016statement.pdf }} to activity {converter.dassem.com.fileconverter/converter.dassem.com.fileconverter.MainActivity}: java.lang.SecurityException: cannot create document. Error: 4
    at android.app.ActivityThread.deliverResults(ActivityThread.java:3949)
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3992)
    at android.app.ActivityThread.-wrap16(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1543)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:207)
    at android.app.ActivityThread.main(ActivityThread.java:5776)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.SecurityException: cannot create document. Error: 4
    at android.graphics.pdf.PdfRenderer.nativeCreate(Native Method)
    at android.graphics.pdf.PdfRenderer.<init>(PdfRenderer.java:153)
Run Code Online (Sandbox Code Playgroud)

文档中没有关于错误 4 的任何内容,尽管它确实说如果使用密码加密 pdf,则会引发安全异常。从 uri 创建 PdfRenderer 时发生错误。

那么有人知道错误 4 的确切含义吗?

谢谢

android pdfrenderer runtimeexception android-securityexception

5
推荐指数
0
解决办法
568
查看次数

谷歌播放服务中的SecurityException?

Fatal Exception: java.lang.SecurityException: Unknown calling package name 'com.my.package.name'.
       at android.os.Parcel.readException(Parcel.java:1546)
       at android.os.Parcel.readException(Parcel.java:1499)
       at com.google.android.gms.common.internal.zzv$zza$zza.zza(Unknown Source)
       at com.google.android.gms.common.internal.zzf.zza(Unknown Source)
       at com.google.android.gms.internal.zzaaj$zzc.zzvA(Unknown Source)
       at com.google.android.gms.internal.zzaaj$zzf.run(Unknown Source)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
       at com.google.android.gms.internal.zzacv.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:818)   
Run Code Online (Sandbox Code Playgroud)

最近在 google play 服务中看到 securityException。此崩溃发生在 Android 4.4、5.0、6.0 中。

以前有人遇到过这个问题吗?

google-play-services android-securityexception

5
推荐指数
1
解决办法
2204
查看次数

"SecurityException: Permission Denial" when opening a calendar Intent

Background

In order to go to the calendar at a specific time, we use this (based on this link) :

@Nullable
public static Intent prepareIntentForCalendar(final Context context, final Date date) {
    Intent intent = null;
    final Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
    builder.appendPath("time");
    ContentUris.appendId(builder, date.getTime());
    intent = new Intent(Intent.ACTION_VIEW).setData(builder.build());
    final PackageManager pm = context.getPackageManager();
    final ResolveInfo resolveActivity = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY
            | PackageManager.GET_RESOLVED_FILTER);
    if (resolveActivity == null)
        return null;
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY
            | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
    return intent;
}
Run Code Online (Sandbox Code Playgroud)

Only if it's …

android android-intent android-calendar android-securityexception

5
推荐指数
0
解决办法
389
查看次数

权限拒绝 -&gt; 需要 oppo.permission.OPPO_COMPONENT_SAFE 但它已经在 AndroidManifest.xml 上

我无法在 oppo 设备中打开意图。我已经在清单上放置了所需的权限,<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE"/>但从来没有工作......总是显示相同的错误:

java.lang.SecurityException: Permission Denial: starting Intent { cmp=com.coloros.safecenter/.startupapp.StartupAppListActivity mCallingUid=10222 } from ProcessRecord{6f75382 3122:com.test.myapp.debug/u0a222} (pid=3122, uid=10222) requires oppo.permission.OPPO_COMPONENT_SAFE

Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有这些意图:

new Intent().setComponent(new ComponentName("com.oppo.safe", "com.oppo.safe.permission.startup.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startupapp.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startupmanager.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safe", "com.coloros.safe.permission.startup.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safe", "com.coloros.safe.permission.startupapp.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safe", "com.coloros.safe.permission.startupmanager.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startsettings")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startupapp.startupmanager")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startupmanager.startupActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.startupapp.startupmanager")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.startupapp.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.privacypermissionsentry.PermissionTopActivity.Startupmanager")),
new …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-permissions android-securityexception oppo

5
推荐指数
0
解决办法
493
查看次数