2011-07-21 70 views
4

我只是想知道,因爲在我的應用程序獲取卸載應用程序的意圖,Android的

卸載應用程序的意圖,當用戶打開的第一個屏幕則設備ID將通過使用PHP保存在服務器端。

當用戶卸載這個應用程序,然後自動設備將被刪除在服務器端。

爲此,我準備了用於刪除設備ID的php代碼。那麼,我什麼時候會打電話給這個webservive。

我嘗試下面的代碼

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 
} 

但它不工作,因爲意圖沒有被引發。所以請告訴我,當用戶卸載應用程序時會提出什麼意圖或告訴我任何解決我的問題的建議。

在此先感謝。

Regards

+0

我不知道,但我認爲,包管理(http://developer.android.com/reference/android/content/pm/PackageManager.html),就可以得到包名和運行一個服務在後臺它檢查每個應用程序的存在。你可以做的一種手術 –

回答

-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及它的優良工程

+0

這不會被我的應用程序接收,而是由其他人接收 – therealprashant

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]表示安裝/卸載應用程序包的名稱(這是系統應用程序,它沒有任何界面,因此它不會顯示給用戶。)。

enter image description here