【问题标题】:What permission am missing?缺少什么权限?
【发布时间】:2011-09-27 14:25:55
【问题描述】:

我正在使用这个进行短信备份

public void smsbackup() throws IOException
    {
        InputStream in = new FileInputStream("/data/data/com.android.providers.telephony/databases/mmssms.db");

        File dir = new File("/mnt/sdcard/bcfile");
        dir.mkdirs();

        OutputStream output = new FileOutputStream("/data/data/com.android.app/files/");

        byte[] buffer = new byte[1024];
        int length;
        while ((length = in.read(buffer))>0) 
        {
            output.write(buffer, 0, length);
        }
        output.flush();
        output.close();
        in.close();
    }

它会抛出像permission denied 这样的异常我不知道我会给予什么许可。有人告诉我吗?提前致谢。

【问题讨论】:

  • 哈哈!您已经使用了哪些权限?
  • 你应该查看你的异常日志,它会显示你缺少什么权限。
  • 另外,如果您在将来从 LogCat 发布 Stacktrace 真的很有帮助
  • @Sherif :这些是我的应用程序的所有权限列表 - pastebin.com/QyXAN5Cp

标签: android sms backup permission-denied


【解决方案1】:

你需要

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

因为

File dir = new File("/mnt/sdcard/bcfile");

我想知道你是否可以访问:/data/data/com.android.providers.telephony/databases/mmssms.db

【讨论】:

  • 顺便问一下,你为什么要做这个目录。它没有被使用。
  • @Sherif :那么,使用哪一个?我已经授予此权限。
  • /data/data/com.android.providers.telephony/databases/mmssms.db 这个文件!您无法访问它,因为它不是您的包裹。向我们展示 logcat
  • @SPK 即使您添加了所有权限!你不能访问/data/data/com.android.providers.telephony/databases/mmssms.db我认为如果你只有root访问权限就可以访问它!
  • @Sherif :很好。我已经尝试过很多次root访问。没有人给出完美的答复或答案。反正我会试试的。
【解决方案2】:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

您必须添加此权限,因为您正在尝试将文件写入 SD 卡。希望这会有所帮助

【讨论】:

    【解决方案3】:
    <uses-permission android:name="android.permission.READ_SMS"></uses-permission>
    

    您还需要阅读收件箱消息的权限。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-03
      • 2021-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 2021-08-24
      相关资源
      最近更新 更多