【问题标题】:APP start error from android 6APP从android 6启动错误
【发布时间】:2015-11-12 15:37:35
【问题描述】:

代码有什么问题,不知道怎么回事? 代码没有错误,但是从android 6开始APP启动错误。

请帮帮我。

 long enqueue;
    DownloadManager dm;

    dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
    DownloadManager.Request request = new DownloadManager.Request(
            Uri.parse("http://grupovrt.ddns.net:81/v4.2.apk"));


    String updatePath = Environment.getExternalStorageDirectory() + File.separator + "Updates" + File.separator + "v4.2.apk";
    request.setDestinationUri(Uri.fromFile(new File(updatePath)));
    request.setDestinationInExternalPublicDir("/updates", "v4.2.apk");


    enqueue = dm.enqueue(request);
    Toast.makeText(getBaseContext(), "Descarc noi actualizari!", Toast.LENGTH_SHORT).show();

如果我删除这一行去

request.setDestinationInExternalPublicDir("/updates", "v4.2.apk");

【问题讨论】:

  • 我发现了错误。在 android 6 中无法自动访问存储空间并给出错误。我如何请求在 android m 中允许它们?
  • @请检查下面我的答案中的链接

标签: android android-studio android-6.0-marshmallow


【解决方案1】:
int permissionCheckStorage = ContextCompat.checkSelfPermission(getActivity(),
                                  Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permissionCheckStorage == PackageManager.PERMISSION_DENIED) {
   requestPermissions(new String[{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_STORAGE);
}else{
 //add your code here
}

MY_PERMISSIONS_REQUEST_STORAGE 是任何整数。 请参考:http://developer.android.com/training/permissions/requesting.html

用户可以通过启用应用对存储的权限来启用对存储空间的访问。

设置>应用>(点击右上角的设置图标导航到“配置应用”)>应用权限>存储>“为您的应用启用权限”

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    如果你的 targetSDK 是 23,你总是需要检查权限。

    这是一个很好的关于在 Android 6.0 上检查和请求权限的教程 New Android runtime permission

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 2016-11-01
      • 2012-02-25
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      相关资源
      最近更新 更多