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 …
我有点被这个异常困住了:
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 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
我的应用程序在 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
我正在制作 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 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
我正在构建一个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
在android 6中,我正在请求使用存储的权限.现在,当用户拒绝我的请求时,我想向他显示一个对话框,解释为什么需要该应用程序的权限才能获得他的许可.
如何才能做到这一点?
是否有任何内置对话框,如使用请求权限方法时弹出的对话框?
android android-permissions android-6.0-marshmallow runtime-permissions
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
我必须测试我的应用程序在打盹模式下的行为方式.根据文档,我首先必须通过在终端中输入以下命令使设备认为它已被拔掉:
$ adb shell dumpsys battery unplug
Run Code Online (Sandbox Code Playgroud)
然而,没有任何反应,它记录:
找不到服务:电池
我该怎么办?
android adb android-6.0-marshmallow android-doze-and-standby android-doze
android ×10
permissions ×2
adb ×1
android-doze ×1
cryptography ×1
java ×1
openssl ×1
runtime ×1
telephony ×1
user-data ×1