Articles of android 6.0 marshmallow

ActivityCompat.requestPermissions无效

调用ActivityCompat.requestPermissions不会显示UI对话框。 ActivityCompat.requestPermissions(MainActivity.this, new String[]{“Manifest.permission.READ_SMS”}, REQUEST_CODE_ASK_PERMISSIONS); 但是,如果我将minSDKversion更改为23并运行 requestPermissions(new String[]{“android.permission.READ_SMS”}, REQUEST_CODE_ASK_PERMISSIONS); 出现对话框。 为什么? BTW。 要在模拟器上运行它,模拟器将以API 23为目标。

Android 6 Marshmallow:一些特定权限的请求被立即拒绝,没有显示ui

使用官方AVD rev。 3 打电话给: ActivityCompat.requestPermissions(activity, new String[]{“android.permission.USE_CREDENTIALS”}, REQUEST_PERMISSION_CREDENTIALS); 立即开火: onRequestPermissionsResult (int requestCode, String[] permissions, int[] grantResults) 结果代码是PackageManager.PERMISSION_DENIED 任何人都有修复? 更新:已知受影响: Manifest.permission.CHANGE_NETWORK_STATE Manifest.permission.WRITE_SETTINGS (solved, see Sam’s answer) android.permission.USE_CREDENTIALS (solved, read Update 2) READ_SMS 更新2:看到优秀的接受答案。 从本质上讲,USE_CREDENTIALS现在是一个安全的许可。 打败我为什么sdk不仅仅为它返回PERMISSION_GRANTED ……

getAccountsByType不会返回marshmallow中的任何内容

现在这很奇怪…… 运用 AccountManager.newChooseAccountIntent(null, null, new String[] {“com.google”}, null, null, null, null); 确实给了我一个账户清单。 但是使用 AccountManager.get(context).getAccountsByType(“com.google”) 返回0个帐户。 这个问题只发生在棉花糖中。 清单中仍然存在。 有任何想法吗…? 更新:结果是,必须要求GET_ACCOUNTS的许可,即使文档说不然……(见评论)

三星是否会支持Marshmallow的Google指纹API?

有没有关于三星的Marshmallow更新是否会使用谷歌的新指纹API或继续使用他们的自定义SDK或两者的信息? 我看到他们已经开始滚动更新测试版测试人员,但这些在我的国家/地区不可用,我找不到其他信息。

如何避免编写重复的样板代码来请求权限?

我正在更新我的应用程序以兼容Android 6。 权限模型在理论上并不复杂,但现在我正在实现它,我发现自己在每个需要权限的活动中编写了相同的丑陋样板代码。 对于我需要的每一个许可,都有一个 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.PERMISSION) != PackageManager.PERMISSION_GRANTED) { } else { } 然后在onRequestPermissionsResult我必须检查/过滤每个请求的结果,并将其转换为我的活动理解的内容。 我现在正在更新我的第二个活动,并且权限代码与第一个类似,它几乎看起来像是复制粘贴的。 线条很长,代码很相似,而且看起来很丑陋。 我不想使用第三方解决方案,我尝试了一些,但我更愿意完全控制代码。 例如,有些库不支持我在项目中使用的Java 8。 我可以做些什么来避免在我的所有活动中出现一堆重复的代码?

Android通知setSound无效

在我的针对API 23+的混合Cordova Android应用中,我想使用自定义声音进行通知。 为此,我做了以下工作 在我在app中使用的单个自定义插件的plugin.xml文件中,我声明了’ 。 将APK作为zip存档打开我看到mp3文件实际上最终以`res / raw / mysound.mp3’结尾。 – 构建通知时,我执行以下操作 Notification notification = new Notification.Builder(context) .setDefaults(0) //turns off ALL defaults .setVibrate(vibrate) /sets to vibrate …. .setSound(uri).build(); 哪里 Uri uri = Uri.parse(“android.resource://” + ctxt.getPackageName() + “/raw/mysound.mp3”); 这似乎是我在google网站上发现的一些文章中指出的配方,甚至在SO上的其他post中也是如此。 然而,当我发出通知时,我听不到预期的声音。 我可能做错了什么? 下面的答案没有帮助,因为在我的混合Cordova应用程序与自定义插件尝试构建APK的上下文引发class R not known/found…

在Android 6.0中回答来电

有没有办法在没有root权限的情况下以编程方式回答Android 6.0中的来电? 我尝试了以下方法: 内部ITelephony.aidl方法 – 有了这个我能够结束通话。 但是接听电话需要android.permission.MODIFY_PHONE_STATE ,这不会提供给Android 6.0中的第三方应用。 耳机KeyCode意图方法 。 这根本不起作用。

如何以编程方式获取android6.0中的SD_Card路径

我试图通过使用如下所示的外部存储路径来检查设备是否具有外部存储器 if (new File(“/ext_card/”).exists()) { specialPath = “/ext_card/”; } else if (new File(“/mnt/sdcard/external_sd/”).exists()) { specialPath = “/mnt/sdcard/external_sd/”; } else if (new File(“/storage/extSdCard/”).exists()) { specialPath = “/storage/extSdCard/”; } else if (new File(“/mnt/extSdCard/”).exists()) { specialPath = “/mnt/extSdCard/”; } else if (new File(“/mnt/sdcard/external_sd/”).exists()) { specialPath = “/mnt/sdcard/external_sd/”; } else if (new File(“storage/sdcard1/”).exists()) { specialPath = “storage/sdcard1/”; } 但是在棉花糖中,我无法find这条路径,在使用ES […]

如何修复以编程方式检测到的屏幕叠加

在我的应用程序中,我要求获得访问Android SDK 23中的SMS的权限(运行时权限),但问题是显示对话框屏幕覆盖并且未授予访问权限.i禁用所有其他应用程序覆盖但没有任何更改。 我find了这个链接但没有帮助 问题是如何以编程方式修复它?

我可以将android中的默认推送通知图标从app图标覆盖到自定义图标吗?

我可以将android中的默认推送通知图标从app图标覆盖到自定义图标吗? 当推送通知到来时,我正在使用默认的firebase实现来在系统托盘中显示通知。 由于我的应用程序图标是彩色的并且具有渐变,所以当收到通知时,android会尝试制作它的黑/白版本,并使其看起来像一个白色圆圈。 有没有办法将默认通知图标更新为其他内容而不是默认应用程序图标? PS:期待一个解决方案,它需要在清单中进行配置更改,并且不想使用NotificationCompat.Builder