【问题标题】:Creation file does not work in android创建文件在android中不起作用
【发布时间】:2023-04-05 02:14:02
【问题描述】:

我使用以下代码:

 String outputFile = "/mnt/sdcard/mydir/myApp.apk"
 File f = new File(outputFile);

 if(!f.exists())
       f.createNewFile();

 // *** other code ***

但是当应用程序到达该行时

 f.createNewFile();

什么都没有出现。其他代码行没有执行,没有错误发生。

我执行此代码的活动以这种方式在 manfiest 中配置:

 <activity android:theme="@android:style/Theme.NoTitleBar" 
        android:name=".ACT_ImpostazioniAvanzate"  android:screenOrientation="landscape">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="content" />
            <data android:scheme="file" />
            <data android:mimeType="application/vnd.android.package-archive" />
        </intent-filter>
    </activity>

此活动不是主要活动,在清单中我获得以下Waring:

 "Exported activity does not require permission"

这是什么意思?可能和我的创建文件问题有关?

【问题讨论】:

标签: android file android-activity android-manifest creation


【解决方案1】:

您的警告与创建文件的问题无关。

您没有设置适当的权限来写入设备上的外部存储。

添加

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

到&lt;activity 标记上方的清单

如果您想了解有关清单中警告的更多信息,请查看此答案here

【讨论】:

  • 信誉高的,应该标记重复的问题。
【解决方案2】:

注意 /mnt/sdcard/ 可能不适用于所有设备,您应该使用 Environment.getExternalStorageDirectory() 并检查清单中的权限,如 cmets 中所述

【讨论】:

  • 我知道。输出文件字符串是这样生成的:Environment.getExternalStorageDirectory().getAbsolutePath() + "/mydir/Host4.apk";但这会检索 /mnt/sdcard/... 目录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多