我正在更新我们的应用程序以使用新的M权限系统.除了onRequestPermissionsResult()之外,它都在工作.我需要在按下按钮时检查权限,如果成功,则发送短信.当我授予这样做的权限时,对话框会关闭,但在我再次按下按钮之前它不会触发发送文本.
我已经在onRequestPermissionsResult()方法中调试并设置了断点,但它从未进入过它.
首先调用此方法:
private void askForPermission() {
String[] permissions = new String[]{Manifest.permission.SEND_SMS};
ActivityCompat.requestPermissions(getActivity(), permissions, PERMISSIONS_CODE);
}
Run Code Online (Sandbox Code Playgroud)
然后我的回调看起来像这样:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSIONS_CODE) {
for (int i = 0; i < permissions.length; i++) {
String permission = permissions[i];
int grantResult = grantResults[i];
if (permission.equals(Manifest.permission.SEND_SMS)) {
if (grantResult == PackageManager.PERMISSION_GRANTED) {
onPPSButtonPress();
} else {
requestPermissions(new String[]{Manifest.permission.SEND_SMS}, PERMISSIONS_CODE);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过类似的问题?感谢任何帮助.谢谢
我有一个使用外部存储来存储照片的应用程序.根据需要,在其清单中,请求以下权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
它使用以下内容来检索所需的目录
File sdDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd", Locale.US);
String date = dateFormat.format(new Date());
storageDir = new File(sdDir, getResources().getString(
R.string.storagedir)
+ "-" + date);
// Create directory, error handling
if (!storageDir.exists() && !storageDir.mkdirs()) {
... fails here
Run Code Online (Sandbox Code Playgroud)
该应用程序适用于Android 5.1至2.3; 它已在Google Play上播放了一年多.
在将我的一个测试手机(Android One)升级到6之后,它现在在尝试创建必需目录时返回错误,"/ sdcard/Pictures/myapp-yy-mm".
SD卡配置为"便携式存储".我已经格式化了SD卡.我已经取代了它.我重新启动了.一切都无济于事.
此外,内置的Android屏幕截图功能(通过电源+低音量)失败"由于存储空间有限,或者应用程序或您的组织不允许".
有任何想法吗?
在实现新的Android M权限模型时,我注意到权限对话框不尊重styles.xml的主题.
在我的styles.xml中,我覆盖了对话框和alertdialog样式,如下所示:
<item name="android:dialogTheme">@style/Theme.dialog</item>
<item name="android:alertDialogTheme">@style/Theme.dialog</item>
Run Code Online (Sandbox Code Playgroud)
是否有可能改变主题?
或者是因为这是设备设置中的系统对话框?
android android-dialog android-permissions android-6.0-marshmallow
最近在新的Android Marshmallow上遇到了很多关于权限请求对话框的问题。它们听起来像:
如何自定义 Android 权限对话框?
如何为 Android 权限对话框提供自定义文本?
为什么我不能自定义Android权限对话框?
所以这里是所有这些问题的完整答案。