相关疑难解决方法(0)

Marshmallow中的存储权限错误

在Lollipop中,下载功能在我的应用程序中运行良好,但是当我升级到Marshmallow时,我的应用程序崩溃并在我尝试从互联网下载到SD卡时出现此错误:

Neither user  nor current process has android.permission.WRITE_EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)

它抱怨这行代码:

DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

我在应用程序外的清单中拥有权限:

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

我清理并重建了项目,但它仍然崩溃.

permissions android android-6.0-marshmallow

147
推荐指数
5
解决办法
23万
查看次数

转到我的应用程序的应用程序权限屏幕

是否有意图转到Android-M中我的应用程序的"应用程序权限"屏幕?

我正在为Android-M准备我的应用程序并使用新的权限模型.我已按照链接中提到的所有步骤进行操作

https://developer.android.com/training/permissions/requesting.html

一切都已设置好并且一切都很好接受如果用户已经选中"永不再问"按钮并拒绝许可,则在下次启动时我想让用户选择转到应用程序的"应用程序权限"并自行更改权限,如果他改变了主意.我希望通过提供一个按钮,让用户直接进入我的应用程序的"应用程序权限"屏幕,让非技术娴熟的用户更容易一些.有办法吗?(这将是比给喜欢的用户指令好得多Menu→交通Settings→交通Applications→交通Manage Applications→交通选择应用程序)

谢谢你的帮助!

permissions android android-6.0-marshmallow

40
推荐指数
1
解决办法
2万
查看次数

如何以编程方式在应用设置中打开应用程序权限窗口

我正在研究新的权限模型(Android 6.0 Marshmallow),我想知道有没有办法以编程方式打开应用程序的权限窗口?

应用权限

不仅是申请细节

应用设置

我设法用这样的东西打开第二个屏幕

private void goToSettings() {
    Intent myAppSettings = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + getPackageName()));
    myAppSettings.addCategory(Intent.CATEGORY_DEFAULT);
    myAppSettings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(myAppSettings);
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何打开第一个.

非常感谢您的帮助:)

permissions android android-settings android-6.0-marshmallow

32
推荐指数
1
解决办法
2万
查看次数

Android 11 用户无法授予后台位置权限?

从 Android 11 开始,面向 SDK 30+ 的应用不会向用户显示多次向应用授予后台位置权限的选项。如果最初未授予,则需要用户转到设置页面。 我们如何将用户带到正确的设置页面?

当您的应用中的某项功能在运行 Android 11 或更高版本的设备上请求后台位置时,系统对话框不包含用于启用后台位置访问的按钮。为了启用后台位置访问,用户必须在设置页面上为您的应用程序的位置权限设置始终允许选项,如有关如何请求后台位置的指南中所述。

https://developer.android.com/about/versions/11/privacy/location#change-details

授予后台位置的设置选项的用户可见标签(例如,图 3 中的始终允许)。您可以调用getBackgroundPermissionOptionLabel() 来获取此标签。此方法的返回值已本地化为用户的设备语言首选项。

https://developer.android.com/training/location/permissions#request-location-access-runtime

虽然 Android 提供了一个新的 API 来获取此设置页面标签,但没有记录的 API 可以直接调出此设置页面。您最接近的是调出特定于应用程序的设置页面,如下所述。从那里,用户必须至少执行两次点击才能深入到“权限”->“位置”以启用后台访问。这是一个繁重的过程,许多用户将无法完成。

在这个问题中已经记录了很长时间没有打开设置页面的 API,但在 Android 11 发布时更为重要,因为没有其他方式授予后台权限。

如何以编程方式打开 Android Marshmallow 上特定应用程序的权限屏幕?

它能够使用户以正确的设置页面中的第一次用户使用这样的代码问: requestPermissions(arrayOf(Manifest.permission.ACCESS_BACKGROUND_LOCATION), PERMISSION_REQUEST_BACKGROUND_LOCATION)。这只会工作一次。如果用户拒绝该权限(或什至意外回击或未授权就离开屏幕),这将永远不会再起作用,并且用户必须如上所述手动向下钻取设置。

除了指示他们在“设置”中寻找正确的页面之外,应用程序是否真的没有办法在初始拒绝后帮助用户授予后台位置权限?

我错过了什么吗?如果没有,这不是 Android 11 的主要可用性问题吗?

在第一次提示中触发正确设置页面所需的完整代码示例,但无法再次执行此操作:

        if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
            if (checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION)
                != PackageManager.PERMISSION_GRANTED
            ) {
                if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_BACKGROUND_LOCATION)) {
                    val builder =
                        AlertDialog.Builder(this)
                    builder.setTitle("This app needs background location access")
                    builder.setMessage("Please grant location access so this app can detect beacons in the …
Run Code Online (Sandbox Code Playgroud)

android location android-permissions android-geofence beacon

26
推荐指数
1
解决办法
1万
查看次数

Android 从 Android 设置导航回应用程序

由于 android 从 Android 设置导航回来的方式,我的用户体验不一致。

在我的应用程序中,用户需要授予我的应用程序访问权限ACTION_USAGE_ACCESS_SETTINGS,我通过以下方式访问:

Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在为我的应用程序将设置切换为打开后,我需要用户返回到我的应用程序。据我所知,这样做的唯一方法是让他们按下手机上的后退按钮(很想知道是否可以在切换设置后自动返回!!!?!)。

现在将发生两件事之一:

1) 用户最近没有使用android设置,所以它没有打开(即在打开的应用程序抽屉中打开)。第一次按下后退按钮将根据需要将它们带到我的应用程序。

2) 用户最近使用过安卓设置。因此设置已经在应用程序抽屉中打开。现在,当用户按下返回键时,Android 会将他们带回他们最近使用过的每个设置页面(即后退按钮带他们查看他们在 android 设置页面中的历史记录)。可能需要按 2、3 或 4 次后退按钮才能离开 Android 设置并返回到我的应用程序。这显然是糟糕的 UI/UX,我想知道是否有更好的方法?

我注意到在安装 Google 应用程序时,将设置切换为 ON 后,它会自动退出并返回到调用该设置的应用程序。能够做到这一点是理想的,但我无法解决。

谢谢!

android android-navigation android-settings

11
推荐指数
1
解决办法
5419
查看次数

Android - 如何允许/启用"浮动通知"设置为使用代码的App的默认设置

我想使用Android Code启用浮动通知.通常用户不知道该设置.所以我需要启用它作为默认值.

应用程序的通知设置

android

8
推荐指数
2
解决办法
8701
查看次数


如何以编程方式在MIUI设备中打开应用程序权限设置?

我想这样打开屏幕:设置->应用程序->选择一个应用程序->打开应用程序权限屏幕

目前,我使用此代码。它使我可以打开AppInfo屏幕。但是我不知道如何选择“应用程序权限”屏幕。

                Intent intent = new Intent();
                intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                Uri uri = Uri.fromParts("package", APP_PACKAGE_NAME, null);
                intent.setData(uri);
                startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

某些运行MIUI的设备具有应用程序权限屏幕。

permissions settings android

4
推荐指数
1
解决办法
4287
查看次数

找不到处理 Intent 应用程序设置的活动

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {\n\n        Intent i = new Intent(Settings.ACTION_APPLICATION_SETTINGS, Uri.parse("package:" + getPackageName()));\n        finish();\n        startActivity(i);\n        return;\n\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试检查上面的 sdk 版本 marshmello,但每次我尝试运行它时,总是会导致这样的错误

\n\n
12-26 08:21:16.982 6330-6330/com.example.asus.retrofittest3 E/AndroidRuntime: FATAL EXCEPTION: main\n                                                                          Process: com.example.asus.retrofittest3, PID: 6330\n                                                                          java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.asus.retrofittest3/com.example.asus.retrofittest3.HomeActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.APPLICATION_SETTINGS dat=package:com.example.asus.retrofittest3 }\n                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2706)\n                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)\n                                                                              at android.app.ActivityThread.-wrap12(ActivityThread.java)\n                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1514)\n                                                                              at android.os.Handler.dispatchMessage(Handler.java:102)\n                                                                              at android.os.Looper.loop(Looper.java:163)\n                                                                              at android.app.ActivityThread.main(ActivityThread.java:6205)\n                                                                              at java.lang.reflect.Method.invoke(Native Method)\n                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)\n                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)\n                                                                           Caused by: android.content.ActivityNotFoundException: …
Run Code Online (Sandbox Code Playgroud)

java android android-intent

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

Android M:即使用户选择Never Ask Again,如何打开权限对话框?

如果没有提示用户设置页面或任何其他解决方案的解决方法是什么?

android android-6.0-marshmallow

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

Android M - 权限设置重定向(INTENT ACTION)

有没有办法将用户重定向到应用程序的设置或更好地重定向到特定应用程序的权限?如下所示:

在此输入图像描述

在此输入图像描述

最好的祝福.

android android-intent android-permissions android-6.0-marshmallow

1
推荐指数
2
解决办法
5495
查看次数