问题标签 [android-securityexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - MediaPlayer:如何在 STREAM_ALARM 中播放
我是android开发的初学者。我需要将原始文件中的媒体作为 STREAM_ALARM 播放给我的闹钟。我在这里发现了一个类似的问题: Android MediaPlayer - how to play in the STREAM_ALARM?
接受的答案就像那个链接上的那样:
我的项目的第一行是这样的:
因此,我使用了 buet.mushfiq.classfriendsupport 作为我的项目名称并以这种方式实现代码:
但不幸的是,没有音频播放,android studio 显示此错误:
mytone.mp3 肯定存在于 raw 文件夹中。实际位置:app/src/main/res/raw。当我应用此代码时,Android Studio 可以很好地播放媒体:
那么如何在 Uri.parse 函数中找到我的文件呢?
android - SecurityException:打开未从 uid 导出的提供程序
我有一个不在 Play 商店中的应用程序。我之前能够通过以下代码启动应用程序安装程序:
在活动中:
现在,我将其更改targetSdkVersion
为 25,并对代码进行了一些更改,但出现以下错误:
致命异常:AsyncTask #1 进程:com.android.packageinstaller,PID:6499 java.lang.RuntimeException:在 java.os.AsyncTask$3.done(AsyncTask.java:326) 处执行 doInBackground() 时出错。 util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 在 java.util.concurrent.FutureTask.setException(FutureTask.java:223) 在 java.util.concurrent.FutureTask.run(FutureTask.java:242) 在 android .os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:244) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 607) 在 java.lang.Thread.run(Thread.java:761) 引起:java.lang.SecurityException:权限被拒绝:在.namespace.appname.comp 中打开提供程序。ProcessRecord{ba35e80 6499:com.android.packageinstaller/u0a17} (pid=6499, uid=10017) 的 GenericFileProvider 不是从 android.os.Parcel.readException(Parcel.java:1684) 的 android.os 的 uid 10076 导出的.Parcel.readException(Parcel.java:1637) 在 android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:4213) 在 android.app.ActivityThread.acquireProvider(ActivityThread.java:5535) 在 android.app.ContextImpl$ApplicationContentResolver。在 android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1131) 在 android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java) 的 android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1517) 获取UnstableProvider(ContextImpl.java:2239) :984) 在 android.content。ContentResolver.openInputStream(ContentResolver.java:704) 在 com.android.packageinstaller.PackageInstallerActivity$StagingAsyncTask.doInBackground(PackageInstallerActivity.java:804) 在 com.android.packageinstaller.PackageInstallerActivity$StagingAsyncTask.doInBackground(PackageInstallerActivity.java:795) 在 android .os.AsyncTask$2.call(AsyncTask.java:306) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:244) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:761)PackageInstallerActivity$StagingAsyncTask.doInBackground(PackageInstallerActivity.java:804) at com.android.packageinstaller.PackageInstallerActivity$StagingAsyncTask.doInBackground(PackageInstallerActivity.java:795) at android.os.AsyncTask$2.call(AsyncTask.java:306) at java。 util.concurrent.FutureTask.run(FutureTask.java:237) 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:244) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:761)PackageInstallerActivity$StagingAsyncTask.doInBackground(PackageInstallerActivity.java:804) at com.android.packageinstaller.PackageInstallerActivity$StagingAsyncTask.doInBackground(PackageInstallerActivity.java:795) at android.os.AsyncTask$2.call(AsyncTask.java:306) at java。 util.concurrent.FutureTask.run(FutureTask.java:237) 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:244) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:761)AsyncTask$2.call(AsyncTask.java:306) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:244) at java.util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:761)AsyncTask$2.call(AsyncTask.java:306) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:244) at java.util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:761)
这些是我在代码中所做的更改:
在清单中:
GenericFileProvider
在目录中创建一个空类comp
:
将活动代码更改为:
是什么导致了这个错误,我该如何解决这个问题?
编辑#1
改变了我的清单:
android - 使用使用权限时出现 SecurityException
我有两个应用程序:App1 和 App2
在 App1 中指定这样的权限
在 App2 中指定这样的权限
我已经按顺序安装了应用程序:首先是 App1,然后是 App2。当我运行 App1 时,我收到了 SecurityException,如下所示:
java.lang.SecurityException: Permission Denial: 从 pid=5550 读取 com.commonname.providers.App1 uri content://com.commonname.providers.app1/logintoken,uid=10919 需要 com.commonname.providers.app1.READ_LOGIN_TOKEN,或 grantUriPermission() 在 android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:608) 在 android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:483) 在 android.content.ContentProvider$Transport.query(ContentProvider.java :212) 在 android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112) 在 android.os.Binder.execTransact(Binder.java:565)
是否存在在运行应用程序时再次请求权限的方法?或者如果首先安装了应用程序,则可以通过其他方式获得此权限。
我已经阅读了这篇文章https://github.com/commonsguy/cwac-security/blob/master/PERMS.md#android-50-behavior,并且根据安装顺序已知,但可能以某种方式存在。
android - addAccountExplicitly 抛出 SecurityException 因为 com.google.android.gm 不允许执行 GET_ACCOUNTS
我的应用程序使用 SyncAdapters 在后台同步数据。在运行 OS 8.0 并设置 Android for Work 托管配置文件的设备上,调用 addAccountExplicitly 会引发 SecurityException 并且无法正确添加帐户。
这是调用堆栈:
我使用在 Pixel 上运行 8.0 的两个 GitHub 项目重现了失败:fingerprint=google/marlin/marlin:8.0.0/OPR3.170623.013/4397526:user/release-keys
GitHub 应用程序:
- https://github.com/googlesamples/android-testdpc
- https://github.com/googlesamples/android-BasicSyncAdapter
以下是重现抛出上述异常的步骤:
- 恢复出厂设置并等待开箱即用屏幕出现。
- 安装应用程序 android-testdpc。为 Android for Work 托管配置文件完成设备设置。
- 不要更改任何策略,也不要重新启动设备。
- 安装应用程序 android-BasicSyncAdapter 并启动它。
- Logcat 将捕获
我是崩溃:[7489,0,com.example.android.basicsyncadapter,950582854,java.lang.SecurityException,com.google.android.gm from uid 10075 not allowed to perform GET_ACCOUNTS,Parcel.java,1942]
补充说明:
- 我看到仅在具有 Android 8.0 的设备上引发了 SecurityException。
- 在启动 android-BasicSyncAdapter 之前重新启动设备不会导致抛出 SecurityException。目前建议为用户解决。
我试图弄清楚如何成功调用 addAccountExplicitly 而不必先重新启动设备。
android - 我收到一条错误消息“策略 #3 的 uid 10086 没有活动管理员”
我正在尝试开发一个app
用户可以通过单击按钮来锁定屏幕Android Studio
。我发现了很多关于这种应用程序的问题和帖子。所以我关注了其中一个,但我收到一条错误消息并且app
已关闭。
致命异常:主进程:com.example.myapplication2,PID:9360 java.lang.SecurityException:策略 #3 的 uid 10086 没有活动管理员
这是我的代码
我还为强制锁定和擦除数据添加了使用策略。
android - 没有详细信息的 java.lang.SecurityException
我四处寻找这个,但找不到我的案子的解决方案。我刚刚更新了我的应用程序以针对 Android API 25。因此我必须更新权限处理。我的应用需要以下权限:
我已经添加了所有代码来检查/请求权限,并在两部不同的手机上进行了测试。然而,一些用户遇到了这个崩溃:
如您所见,我收到了一个没有详细信息的安全异常。堆栈跟踪还显示它根本不是源自我的代码。
谁能告诉我如何解决这个问题?我读错了堆栈跟踪吗?
编辑:问题必须源于尝试从联系人建立用户电子邮件列表。这是代码:
java - 访问设置时的 Android 安全异常
我需要从我的应用程序中打开 Usage Stats 设置。对于大多数手机,一切正常:
但是,有些手机(例如华为 Y6 Pro)会引发安全异常java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.USAGE_ACCESS_SETTINGS cmp=com.android.settings/.Settings$UsageAccessSettingsActivity } from ProcessRecord{3f032f8b 18712:com.example.pro/u0a924} (pid=18712, uid=10924) not exported from uid 1000
有没有办法检查我是否可以执行startActivity
并且不会抛出任何异常?
android - 如何在完全离线的应用程序中保持 KEYS 的安全?
我有完全离线的应用程序,它保留了实现功能所需的少量 KEYS。我正在使用 proguard 来保护我的应用程序免受逆向工程的影响,但是我不可能 100% 地让应用程序远离逆向工程。
此外,KEYS 被定义为不可变的字符串。因此,我认为虽然我使用了 proguard,但最终不会混淆 KEYS。
我的问题是,
如何在我的应用程序中保持 KEYS 的安全,并且我的应用程序要求是固定的并且只想在应用程序中保留 KEYS?
android - Android - android.os.Parcel.readException 中的 java.lang.SecurityException
我一直在研究基于位置的 Android 应用程序。我还处理了运行时危险的位置权限。它在测试从 4.0 到 8.0 的各种设备时效果很好。
我没有其他危险的权限。
如果例外是运行时位置权限,它会显示如下内容
但是,日志如下所示。
谷歌播放控制台上的异常计数为 1216,在短时间内受影响的用户为 368。
任何帮助,将不胜感激。提前致谢
android - ActivityTransitionRequest 中指定的活动无效
我正在尝试使用 ActivityRecognition。但是,当我尝试获取 DetectedActivity.TILTING 或 DetectedActivity.UNKNOWN 的转换更新时出现错误。对于所有其他活动类型,我没有问题。
这是我创建 ActivityTransitionRequest 的代码
这是我正在使用的 IntentService。
这是我得到的例外:
任何帮助,将不胜感激。