Android安装/卸载应用时触发事件Android

时间:2015-07-14 18:22:37

标签: android android-activity

我想在安装/卸载应用程序时获取一些信息(日期等),我已经找到了一些关于如何使用ACTION_PACKAGE_REMOVED& ACTION_PACKAGE_ADDED意图,但即便如此,我也无法得到正确的方法...任何帮助将不胜感激。谢谢。 这是一个简单的代码i wr

   <receiver
        android:name=".MyReceiver"
        android:enabled="true"
        android:exported="true" >
        <intent-filter android:priority="100" >
            <action android:name="android.intent.action.PACKAGE_ADDED" />
            <action android:name="android.intent.action.PACKAGE_REMOVED" />
            <data android:scheme="package" />
        </intent-filter>

public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}

@Override
public void onReceive(Context context, Intent intent) {
    // TODO: This method is called when the BroadcastReceiver is receiving
    // an Intent broadcast.
    Log.d("Receiver", "Intent: " + intent.getAction());
}

}

2 个答案:

答案 0 :(得分:0)

你应该删除

<data android:scheme="package" />
来自<intent-filter>

修改

  

问题是......我如何为自己的应用程序触发安装/卸载事件?

您将无法获得与您自己的包裹相关的信息。

答案 1 :(得分:0)

这是一种可用于跟踪自己应用更新的解决方法。

  1. 实现虚拟数据库并覆盖 SQLiteOpenHelper.html onUpgrade() 。只要有新的数据库版本,就会调用onUpgrade()方法已安装。有关详情,请访问refer here
  2. 现在,每当您有一个应用程序的新更新时,也会更新数据库版本。这样,您将在数据库版本和应用程序版本之间进行一对一的映射。
  3. 现在,当用户更新应用程序 onUpgrade() 时,您可以编写您想要跟踪更新的任何逻辑。(如果您使用的是数据库)应用程序,您可能需要一些额外的逻辑来区分实际的数据库升级和应用程序升级。)