我正在開發一個使用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