2011-12-31 74 views
6

我有一个应用程序安装在许多设备。如何知道我的应用程序是从设备上卸载的?

如果应用程序从任何设备上卸载,我需要一个指示。

如何实现这一点。

在此先感谢...!

+0

你必须得到指示吗?在该设备或任何控制/与您的所有设备通信的外部设备?请清楚地问问题。 – 2011-12-31 06:21:03

+0

你的意思是你想要任何警报或吐司消息,说你的应用程序被卸载。对 ? – 2011-12-31 06:22:00

+0

如果是这样,那么你已经从设备上卸载它。 – 2011-12-31 06:22:37

回答

5

我的建议将如下。你可以拦截你的应用程序的意图卸载。简单地把下面的代码在你的manifest文件:

<uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 
<uses-permission android:name="android.permission.DELETE_PACKAGES" /> 
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".UninstallIntentActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <action android:name="android.intent.action.DELETE" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:scheme="package" android:pathPattern="com.testpack.yourapp" /> 
     </intent-filter> 



    </activity> 

</application> 

此之后,你能以某种方式,你的应用程序将会被删除处理(例如,您发送电子邮件),并调用包管理器卸载程序。

+0

我需要添加到我的应用程序...? – Noby 2011-12-31 08:46:02

+0

我的主要活动是不同的。如果我放置此代码,我的启动器活动将不会在应用程序启动时启动...! – Noby 2011-12-31 08:46:52

+0

是的,粗糙的你应该修改代码。在这里,我只展示了您需要的权限和意图过滤器。 – Yury 2011-12-31 09:06:22

2

除非您跟踪Android市场的统计数据,否则无法确定某人何时卸载您的应用。除非你只有几次安装,这可能很难

+0

如果我没有放置我的应用在市场上......? – Noby 2011-12-31 06:32:21

+0

然后,没有办法做到这一点。 – mseo 2011-12-31 06:36:00

+0

我正在寻找相同任务的编程方法。 – Noby 2011-12-31 06:47:33

相关问题