我正在开发一个使用qt的Android应用程序,并在该qt中集成了Android代码。使用qt我正在SD卡上创建一个文件,在卸载应用程序时不会被删除。我想删除文件,这两种方法 1. methiod在卸载应用程序时从sdcard中删除文件
public void deleteExternalStoragePrivateFile() {
File file[] = Environment.getExternalStorageDirectory().listFiles();
for(int i = 0; i< file.length; i++) {
file[i].getAbsolutePath();
Log.d("Listing files: ", file[i].getAbsolutePath());
if (file[i].getAbsolutePath().equalsIgnoreCase("/mnt/sdcard/test.txt")) {
file[i].delete();
}
}
} ,并呼吁在OnDestory这种方法对主要活动,我不知道正确的地方调用此方法。
2的方法 在这种方法中,我定义boradcast接收这样
public class PackageRemoval extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent){
//this.context=context;
Uri data = intent.getData();
Log.d("hi", "Action: " + intent.getAction());
Log.d("hi", "The DATA: " + data);
String action=intent.getAction();
if(Intent.ACTION_PACKAGE_REMOVED.equalsIgnoreCase(action)){
File file[] = Environment.getExternalStorageDirectory().listFiles();
for(int i = 0; i< file.length; i++) {
file[i].getAbsolutePath();
Log.d("Listing files: ", file[i].getAbsolutePath());
if (file[i].getAbsolutePath().equalsIgnoreCase("/mnt/sdcard/test.txt")) {
file[i].delete();
}
}
}
}
}
我已经加入了接收器清单文件这样
<receiver android:name="com.example.test.PackageRemoval">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
,但我似乎没有任何工作,并没有得到任何异常或错误...任何想法我失踪..我想最有可能我正在调用这些方法或正确广播接收器
默认路径是/ Android/data/packageName/fileName?和我可以创建从外部Android文件,就像我正在用qt –
我不明白你的意思是“外部Android”。你上面发布的代码看起来像我的Android代码(有一个Intent,一个BroadcastReceiver,一个manifest),那么为什么你不能调用Context.getExternalFilesDir()而不是硬编码路径? – marcone