标签: android-6.0-marshmallow

Android M requestPermissions(ACCESS_COARSE_LOCATION),不显示对话框?

AndroidManifest.xml 添加了它:

<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)

ActivityCompat.requestPermissions()

int permissionCheck = ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_COARSE_LOCATION);
if (!(permissionCheck == PackageManager.PERMISSION_GRANTED)) {

    // Should we show an explanation?
    if (ActivityCompat.shouldShowRequestPermissionRationale(this,
            Manifest.permission.ACCESS_COARSE_LOCATION)) {

    } else {
        // do request the permission
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                8);
    }
}
Run Code Online (Sandbox Code Playgroud)

onRequestPermissionsResult()

@Override
public void onRequestPermissionsResult(int requestCode,
        String permissions[], int[] grantResults) {
    switch (requestCode) {
        case 8: {
            // grantResults[0] = -1
            if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            } else {

            }
            return;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

requestPermissions(ACCESS_COARSE_LOCATION)不显示任何对话框,并onRequestPermissionsResult …

permissions android runtime android-6.0-marshmallow

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

关闭 CipherInputStream 时出现运行时异常

我有点被这个异常困住了:

java.lang.RuntimeException: error:0407806d:RSA routines:decrypt:DATA_LEN_NOT_EQUAL_TO_MOD_LEN
 at com.android.org.conscrypt.NativeCrypto.RSA_private_decrypt(Native Method)
 at com.android.org.conscrypt.OpenSSLCipherRSA.engineDoFinal(OpenSSLCipherRSA.java:274)
 at javax.crypto.Cipher.doFinal(Cipher.java:1440)
 at javax.crypto.CipherInputStream.close(CipherInputStream.java:190)
 ...
Run Code Online (Sandbox Code Playgroud)

当我关闭 Android Marshmallow 上的 CipherInputStream 时会抛出它。一切似乎都适用于早期的 Android 版本。

什么DATA_LEN_NOT_EQUAL_TO_MOD_LEN意思?为什么RSA_private_decrypt它应该在应该释放资源句柄(关闭)时解密(调用)?

更新:

我设法用一些测试代码重现了错误。它加密和解密"foobar"。一次直接使用密码,一次通过 CipherInputStream(就像在原始应用程序中完成的那样)。

一切都在 android < 6 上工作,非流代码甚至在 android 6 上工作。当我将显式密码更改RSA/ECB/PKCS1Padding为 generic时,我能够让流代码在 android 6 上工作RSA。但我敢打赌它的存在是有原因的;)

static final String RSA_ALGO = "RSA/ECB/PKCS1Padding";
//  static final String RSA_ALGO = "RSA";

private void _testCrypto2() throws Exception {
  KeyPairGenerator keyGen;
  KeyPair          keys;
  byte[]           encrypted;
  byte[]           decrypted;
  String           input;
  String           output;

  keyGen …
Run Code Online (Sandbox Code Playgroud)

android openssl cryptography android-6.0-marshmallow

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

Android 6 (23) - 无需许可

我坚持使用 Android 6 中的新权限模型。

我在清单中定义了以下权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<application...
Run Code Online (Sandbox Code Playgroud)

但是,如果我在模拟器中启动应用程序并打开应用程序详细信息,我会看到以下内容:

在此处输入图片说明

它说该应用程序不需要任何许可。

请问我该如何解决?

非常感谢您的任何建议。

android permission-denied android-permissions android-6.0-marshmallow

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

在 Android 6 上出现“无权写入 APN 设置”错误

我的应用程序在 Android 5.0 及更低版本上运行良好,但是当我尝试在 Android 6.0 或更高版本的设备上运行它时,出现以下错误:

Writing exception to parcel
                                                 java.lang.SecurityException: No permission to write APN settings
                                                     at com.android.providers.telephony.TelephonyProvider.checkPermission(TelephonyProvider.java:4058)
                                                     at com.android.providers.telephony.TelephonyProvider.query(TelephonyProvider.java:2724)
                                                     at android.content.ContentProvider.query(ContentProvider.java:1058)
                                                     at android.content.ContentProvider$Transport.query(ContentProvider.java:245)
                                                     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
                                                     at android.os.Binder.execTransact(Binder.java:453)
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

permissions android telephony securityexception android-6.0-marshmallow

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

如何在 rombuild 中向 android AOSP Marshmallow 的 /data 部分下添加文件正确的方法

我正在制作 Marshmallow AOSP rom 并尝试将 device_owner.xml 添加到 /data/system 以将应用程序直接配置给设备所有者。

我在产品副本文件之后添加了 .mk 文件之一

 PRODUCT_COPY_FILES += abc/cba:data/system/device_owner.xml
Run Code Online (Sandbox Code Playgroud)

文件可以在 out/data/system/ 下找到,但它似乎没有包含在 rom 中。

我也尝试用 PRODUCT_COPY_FILES 替换

PRODUCT_PACKAGES += device_owner.xml
Run Code Online (Sandbox Code Playgroud)

并为该文件制作了自己的 Android.mk 文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE = device_owner.xml
LOCAL_SRC_FILES = $(LOCAL_MODULE)
LOCAL_MODULE_CLASS = ETC
LOCAL_MODULE_PATH = $(TARGET_OUT_DATA)/system
include $(BUILD_PREBUILT)
Run Code Online (Sandbox Code Playgroud)

仍然不包含在 rom 中。

我读过数据分区将是 userdata.img 的一部分,但文件也不存在。

我还尝试将 device_owner.xml 包含到不同的位置,例如 /system/ 下,然后将其复制到 post-fs-data 阶段下的 init.rc 文件中

copy /system/abc/device_owner.xml /data/system/device_owner.xml
chown system system /data/system/device_owner.xml
chmod 0600 /data/system/device_owner.xml
Run Code Online (Sandbox Code Playgroud)

文件将是正确的位置,但由于某种原因 chown 命令不会将所有者和组更改为系统。默认情况下,文件具有 root 所有者和组。

知道如何做到这一点吗? …

android user-data android-6.0-marshmallow

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

listFiles() 在 /storage/emulated 上返回 null,而 /storage/emulated/0 存在

我正在 android 27 模拟器上进行测试并尝试遍历一些目录。

当我尝试遍历/storage/emulated目录时,该方法会在存在时listFiles()返回。null/storage/emulated/0

这是一个测试代码:

File emuDir = new File("/storage/emulated");
File[] emuDirFiles = emuDir.listFiles(); // returns null.

File exStorageDir = new File("/storage/emulated/0")
exStorageDir.exists(); // returns true
Run Code Online (Sandbox Code Playgroud)

PS我已经在清单中添加了适当的存储权限并授予了运行时权限。

java android file-permissions android-6.0-marshmallow android-storage

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

Android不需要权限 - Marshmallow 6.0.1 Unity

我正在构建一个Cardboard应用程序并在Nexus 6P上进行测试.我遇到的问题是,当我安装应用程序时,它不会要求任何权限.在我的清单中我有这个:

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

然后,如果我想在我的应用程序中从互联网上下载一些文件,它不起作用.它甚至没有创建com.夹.

我必须手动转到应用信息并检查存储权限.

这很奇怪,因为在为GearVR构建应用程序并在Note 4上进行测试时,它会要求许可(在Note 4中我使用sd卡,在Nexus 6P内部)

为什么会这样?

谢谢.

android unity-game-engine android-permissions android-6.0-marshmallow

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

Android 6请求权限

在android 6中,我正在请求使用存储的权限.现在,当用户拒绝我的请求时,我想向他显示一个对话框,解释为什么需要该应用程序的权限才能获得他的许可.

如何才能做到这一点?

是否有任何内置对话框,如使用请求权限方法时弹出的对话框?

android android-permissions android-6.0-marshmallow runtime-permissions

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

无法在checkSelfPermission方法中解析符号'CAMERA'

I need to ask for runtime permission to use camera in my fragment class.my code is like this..


int currentapiVersion = android.os.Build.VERSION.SDK_INT;

if (currentapiVersion >= Build.VERSION_CODES.M) {

                if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {

                    requestPermissions(getActivity(), new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_ASK_PERMISSIONS);........
Run Code Online (Sandbox Code Playgroud)

但是,它显示 - 无法解析符号'CAMERA'

android android-camera android-permissions android-6.0-marshmallow runtime-permissions

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

通过ADB拔出设备:"无法找到服务"

我必须测试我的应用程序在打盹模式下的行为方式.根据文档,我首先必须通过在终端中输入以下命令使设备认为它已被拔掉:

$ adb shell dumpsys battery unplug
Run Code Online (Sandbox Code Playgroud)

然而,没有任何反应,它记录:

找不到服务:电池

我该怎么办?

android adb android-6.0-marshmallow android-doze-and-standby android-doze

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