1

我使用以下代码:

 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"

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

4

2 回答 2

2

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

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

添加

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

<activity标签上方的清单

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

于 2012-10-23T16:50:29.257 回答
0

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

于 2012-10-23T16:51:18.693 回答