相关疑难解决方法(0)

Android M Permissions:onRequestPermissionsResult()未被调用

我正在更新我们的应用程序以使用新的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)

有没有人遇到过类似的问题?感谢任何帮助.谢谢

java permissions android android-permissions

280
推荐指数
15
解决办法
14万
查看次数

Android 6.0 Marshmallow.无法写入SD卡

我有一个使用外部存储来存储照片的应用程序.根据需要,在其清单中,请求以下权限

<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 android-sdcard android-6.0-marshmallow

51
推荐指数
4
解决办法
13万
查看次数

Android M - 自定义权限对话框样式

在实现新的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

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

为什么我不能在 Android 6 上自定义权限请求对话框?

最近在新的Android Marshmallow上遇到了很多关于权限请求对话框的问题。它们听起来像:

如何自定义 Android 权限对话框?

如何为 Android 权限对话框提供自定义文本?

为什么我不能自定义Android权限对话框?

所以这里是所有这些问题的完整答案。

android android-permissions android-6.0-marshmallow

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