在android中获取卸载app的意图

时间:2011-07-21 11:48:29

标签: android uninstall

由于

,我只是想了解卸载应用的意图

在我的应用程序中,当用户打开第一个屏幕时,设备ID将通过使用php保存在服务器端。

当用户卸载此应用程序时,服务器端将自动删除该设备。

为此我为php准备了删除设备ID的代码。所以我什么时候才能打电话给这个网站。

我试过下面的代码

public class MyReceiver extends BroadcastReceiver {

@Override
 public void onReceive(Context context, Intent intent) {
 String action = intent.getAction(); 
 if("android.intent.action.PACKAGE_REMOVED".equals(action)){
   // here i wrote the code of  delete device id in server side
}

但它没有奏效,因为没有提出意图。所以请告诉我当用户卸载应用程序时会提出什么意图,或者告诉我任何解决问题的建议。

提前致谢。

问候

3 个答案:

答案 0 :(得分:6)

答案 1 :(得分:0)

您可以使用辅助功能服务检测任何应用(包括您自己的应用)的卸载弹出窗口。

public class MyService extends AccessibilityService {

@Override
public void onCreate() {
    super.onCreate();
}

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {

    if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {

        if(event.getText().equalsIgnoreCase("check for content in popup which is in screenshot"){

        /**Do your task*/
        }
    }
}

@Override
public void onInterrupt() {
}

@Override
protected void onServiceConnected() {
    super.onServiceConnected();
    AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.flags = AccessibilityServiceInfo.DEFAULT;
    info.packageNames = new String[]{"com.android.packageinstaller"};
    info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED | AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED;
    info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
    setServiceInfo(info);
}

此处onServiceConnected[![com.android.packageinstaller][1]][1]表示安装/卸载应用程序包名称(这是系统应用程序,它没有任何用户界面,因此不会向用户显示。)。< / p>

enter image description here

答案 2 :(得分:-2)

<receiver android:name=".MyReceiver">
<intent-filter android:priority="999"> 
    <action android:name="android.intent.action.PACKAGE_REMOVED"/>
    <data android:scheme="package"/> 
</intent-filter>
</receiver>

在Android 4.0中测试,其工作正常