我有一个使用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
我有一个设备管理器应用程序,并且尝试使用自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
我有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
我正进入(状态-
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
我正在尝试将文件从服务器下载到Downloadandorid 的文件夹中
正如预期的那样工作正常
问题
当用户克隆我的应用程序(双应用程序)时,克隆的应用程序(第二个应用程序)抛出SecurityException: Unsupported path /storage/emulated/999/Download/somefile.pdf
研究
设备:红米5
应用程序:文件管理器(系统应用程序)
我找到了 2 个选项
仍然我的应用程序抛出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) 我正在尝试使用 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
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 中。
以前有人遇到过这个问题吗?
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
我无法在 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