【发布时间】:2014-02-25 16:01:28
【问题描述】:
我正在使用 qt 开发一个 Android 应用程序,并在该 qt 中集成了 Android 代码。使用 qt 我正在 sdcard 上创建一个文件,该文件在卸载应用程序时不会被删除。我正在尝试使用这两种方法删除该文件 1.方法
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 方法 在这种方法中,我正在定义这样的广播接收器
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();
}
}
}
}
}
我已经像这样在 Manifest 文件中添加了接收器
<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 qt file broadcastreceiver android-sdcard