Questions tagged «android-6.0-marshmallow»

Android Marshmallow(以前称为“ Android M”)是Android的6.0版,支持API Level 23,并于2015年10月开始发货。


11
如何以编程方式打开Android棉花糖上特定应用的权限屏幕?
我对新的Android Marshmallow版本有疑问: 是否可以通过Intent或类似方法显示特定应用程序的权限屏幕? 可以使用以下代码显示应用程序设置-是否存在用于直接打开权限屏幕的模拟解决方案? startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null))); 我已经对此进行了一些研究,但无法找到合适的解决方案-我将不胜感激!

24
Android M-检查运行时权限-如何确定用户是否选中了“不再询问”?
据此:http : //developer.android.com/preview/features/runtime-permissions.html#coding应用程序可以检查运行时权限,如果尚未授予运行权限,则可以请求权限。然后将显示以下对话框: 万一用户拒绝重要许可,则imo应用程序应显示解释为何需要此许可以及拒绝影响如何。该对话框有两个选项: 重试(再次请求许可) 拒绝(未经该许可,该应用将可以运行)。 Never ask again但是,如果用户进行了检查,则不应显示带有说明的第二个对话框,特别是如果用户之前已经拒绝过一次。现在的问题是:我的应用程序如何知道用户是否已检查Never ask again?IMO onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)没有给我该信息。 第二个问题是:Google是否计划在权限对话框中加入自定义消息,以解释应用程序为何需要权限?这样,就不会再有第二个对话框,它肯定会带来更好的用户体验。

8
卸载并重新安装后,Android应用程序会记住其数据
在开发针对4.1以上所有版本的Android应用程序时,我发现卸载并重新安装应用程序不会清除其数据。 该应用程序旨在将其询问的详细信息存储在其第一个屏幕中。在OS版本4.4.4中卸载并再次安装后,该应用程序会提示用户填写数据,这是正常的。但是,在6.0版中,相同的安装/卸载顺序将恢复原始输入的数据。 我试图通过访问来确保/data/data/my package folder卸载后数据库消失,并且确实在卸载过程中删除了该文件夹。 我试图通过Titanium Backup访问设置页面来删除该应用程序,结果是相同的。设备植根于运行v6.0的Nexus 5。 这种奇怪行为的原因可能是什么?

14
如果在片段和活动中都定义了onRequestPermissionsResult,则不会在片段中调用
我有一个片段,其中有recyclerview并使用recyclerview适配器在此recyclerview中设置数据。 现在,我在适配器的列表项中有一个按钮,单击该按钮后,我需要检查android中的READ_EXTERNAL_STORAGE权限以获取android中的新权限模型。 我在此适配器的片段中创建了一个新函数,以检查是否已授予许可,如果尚未授予许可,则请求许可。 我已将MyFragment.this作为适配器中的参数传递,并在按钮中单击适配器中的调用片段的方法。 我已使用以下代码在片段中调用requestPermission。 if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, ConstantVariables.READ_EXTERNAL_STORAGE); } 我onRequestPermissionsResult通过使用以下代码覆盖了片段中的方法: @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case ConstantVariables.READ_EXTERNAL_STORAGE: // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission …


22
Android 6.0多重权限
我知道Android 6.0拥有新的权限,我知道可以使用类似这样的名称 if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, PERMISSION_WRITE_STORAGE); } 今天,我看到了一个需要3个权限的Google应用:联系人,短信和摄像头。它正在制作第1-3页,并同时将它们一起调用以激活。 有人可以告诉我如何调用4个权限来同时激活短信,摄像头,联系人和存储吗? 示例(忘记了Google应用的名称:() 该应用需要短信,联系人和相机 该应用程序问我(并在第1-3页进行了对话框)激活短信,激活联系人,然后激活相机。所以这个谷歌应用程序一起调用了所有3个必需的权限,我的问题是我怎么能达到相同的权限?

12
棉花糖中的存储权限错误
Наэтотвопросестьответына 堆栈溢出нарусском:Какполучитьсписокфайловвдиректории?(Android API级别26) 在Lollipop中,下载功能在我的应用程序中运行良好,但是当我升级到棉花糖时,我的应用程序崩溃并在尝试从Internet下载到SD卡时出现此错误: Neither user nor current process has android.permission.WRITE_EXTERNAL_STORAGE 它抱怨这行代码: DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); manager.enqueue(request); 我在应用程序外部清单中具有权限: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> 我清理并重建了项目,但仍然崩溃。

11
Android M权限:对shouldShowRequestPermissionRationale()函数的使用感到困惑
我正在查看有关Android M中新的Permissions模型的官方文档。它讨论了该shouldShowRequestPermissionRationale()函数,true如果应用程序之前曾请求过此权限并且用户拒绝了该请求,则会返回该函数。如果用户过去拒绝了权限请求并选择了“不再询问”选项,则此方法返回false。 但是,如何区分以下两种情况? 情况1:该应用没有权限,并且之前没有询问用户该权限。在这种情况下,shouldShowRequestPermissionRationale()将返回false,因为这是我们第一次询问用户。 情况2:用户拒绝了该权限并选择了“不再询问”,在这种情况下,ShowShowPermissionPermissionRationale()也将返回false。 我想将用户转到案例2中的App设置页面。如何区分这两种情况?

24
不推荐使用ConnectivityManager getNetworkInfo(int)
使用compileSdkVersion 23,但是尝试支持早至9。 getNetworkInfo(int)在23中被弃用。建议使用getAllNetworks()和getNetworkInfo(Network)代替。但是,这两个都需要最少的API 21。 我们可以在支持包中使用一个可以帮助您解决问题的类吗? 我知道以前曾提出过一个解决方案,但是我的最低API要求9带来了挑战。

5
如何从Android棉花糖中的服务请求权限
在Android Marshmallow中,应在需要时在运行时请求权限,而不是在安装应用程序时立即请求所有权限。但是,我似乎只能向活动请求权限,这是一个问题,因为我的应用程序仅包含服务。(为什么会这样,您可能会问?该应用程序捆绑了一个Android Wear表盘,并且所有手机所做的只是查找附近的照片以发送至手表-无需进行“活动”。但它确实需要位置权限。) 因此,有什么方法可以向服务请求权限吗?还是以某种方式强制像过去一样在安装时授予权限?

7
Android 5.1.1及更高版本-getRunningAppProcesses()仅返回我的应用程序包
看来Google终于关闭了获取当前前景应用程序包的所有门。 棒棒糖更新后,该消息被杀死getRunningTasks(int maxNum),这要归功于此答案,,我使用了以下代码来获取自Lollipop以来的前台应用程序包: final int PROCESS_STATE_TOP = 2; RunningAppProcessInfo currentInfo = null; Field field = null; try { field = RunningAppProcessInfo.class.getDeclaredField("processState"); } catch (Exception ignored) { } ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appList = am.getRunningAppProcesses(); for (RunningAppProcessInfo app : appList) { if (app.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && app.importanceReasonCode == 0 …

10
如何将Apache HTTP API(旧版)添加为Android M的build.grade的编译时依赖项?
如前所述这里,Android的M将不支持的Apache HTTP API。该文档指出: 请改用HttpURLConnection类。 要么 要继续使用Apache HTTP API,必须首先在build.gradle文件中声明以下编译时依赖性: android {useLibrary'org.apache.http.legacy'} 我已经将项目对HttpClient的大部分用法转换为HttpURLConnection,但是,我仍然需要在一些领域中使用HttpClient。因此,我试图将“ org.apache.http.legacy”声明为编译时依赖项,但在build.gradle中遇到错误: 找不到Gradle DSL方法:“ useLibrary()” 我的问题是:如何在项目中将“ org.apache.http.legacy”声明为编译时依赖项? 任何帮助深表感谢。谢谢

25
状态栏变为白色,并且在其后面不显示内容
我正在棉花糖上试用AppCompat。我想有一个透明的状态栏,但是它变成白色。我尝试了几种解决方案,但它们对我不起作用(透明状态栏不适用于windowTranslucentNavigation =“ false”,Lollipop:在statusBar后面绘制,其颜色设置为transparent)。这是相关的代码。 我的styles.xml <style name="Bacon" parent="Theme.Bacon"/> <style name="Theme.Bacon" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/theme_primary</item> <item name="colorPrimaryDark">@color/theme_primary_dark</item> <item name="colorAccent">@color/theme_accent</item> <item name="windowActionBar">false</item> <item name="windowActionBarOverlay">true</item> <item name="windowNoTitle">true</item> <item name="android:windowBackground">@color/background_material_light</item> </style> <style name="Theme.Bacon.Detail" parent="Bacon"/> v21 <style name="Bacon" parent="Theme.Bacon"> <item name="android:windowDrawsSystemBarBackgrounds">true</item> </style> <style name="Theme.Bacon.Detail" parent="Bacon"> <item name="android:statusBarColor">@android:color/transparent</item> </style> 活动 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" …

7
需要在Android 6.0上启用蓝牙低功耗扫描的位置
升级到Android 6.0版后,只有在设备上启用了定位服务后,蓝牙低功耗(BLE)扫描才起作用。请参阅此处以供参考:Android 6.0上的Bluetooth Low Energy startScan找不到设备 基本上,您需要为应用程序和电话启用权限。这是错误吗?在没有实际启用位置服务的情况下可以进行扫描吗?我不需要所有应用程序的位置。 编辑 我没有提到我正在使用API 21 startScan()中BluetoothLeScanner提供的方法。我可以接受此方法所需的课程和清单中的精细位置权限。我只是不希望我的应用程序的用户必须在其设备(GPS等)上启用位置服务才能使用我的应用程序。 以前,该startScan()方法将在手机上禁用位置服务的情况下运行并返回结果。但是,在棉花糖上,当未在电话上启用位置服务并且清单中仍包含课程/精确位置权限时,同一应用程序将“扫描”但无提示失败,并且不返回任何结果。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.