android未接收到意图操作\u程序包\u已在已删除的程序包中删除
当我的android应用程序被删除时,我还想删除应用程序在SD卡上创建的文件,因为这些文件可能会消耗很多兆字节,并且只对我的应用程序有用 看来,接收包删除意图将是这样做的地方。 然而,我的广播接收器从未被调用——它似乎在包被删除之前就被删除了 代码是: public class UninstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action= intent.getAction(); Log.i("U", "ACTION " + action); etc. } } 公共类UninstallReceiver扩展了BroadcastReceiver{ @凌驾 公共void onReceive(上下文、意图){ String action=intent.getAction(); 日志i(“U”、“动作”+动作); 等 } } 在舱单中: <application android:debuggable="true" android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name ="com.boom.UninstallReceiver"> <intent-filter> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <data android:scheme="package" /> </intent-filter> </receiver> 报告说: 正在删除的包没有收到此目的 Android 2.2添加了android未接收到意图操作\u程序包\u已在已删除的程序包中删除,android,android-intent,package,broadcastreceiver,Android,Android Intent,Package,Broadcastreceiver,当我的android应用程序被删除时,我还想删除应用程序在SD卡上创建的文件,因为这些文件可能会消耗很多兆字节,并且只对我的应用程序有用 看来,接收包删除意图将是这样做的地方。 然而,我的广播接收器从未被调用——它似乎在包被删除之前就被删除了 代码是: public class UninstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent
getExternalFilesDir()
,它将指向外部存储上的一个位置,当卸载应用程序时,Android将自动清理该位置。然而,这只适用于Android2.2,有迹象表明,目前它的工作并不特别好。然而,这是2011年需要记住的事情
除此之外,您真正能做的就是在某个地方为用户提供一个菜单选项来进行清理,并希望用户在卸载您之前使用它。您必须在manifast中添加权限
<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" />
此权限仅授予系统应用程序。所以我不能在我的应用程序中使用它。这个答案太错误了。需要此权限才能发送已删除的广播意图包。即使系统会授予您此权限(它不会),也不会有帮助。这个答案应该删除。