2013-01-22 23 views
0

我需要從安裝的特定包中獲取接收者的意向過濾器的操作名稱。我收到了android.intent.action.PACKAGE_INSTALL的廣播意圖。從包信息確定接收器的意圖過濾器

我得到該包的uuid。但是,我怎樣才能獲得有關該包裝的接收器的詳細信息?可能來自PackageManagerPackageInfo

回答

2

如果你想獲得軟件包信息,安裝完成後。在接收機

<receiver android:name="PackageChangeReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.PACKAGE_ADDED"/> 
    <data android:scheme="package"/> 
    </intent-filter> 
    </receiver> 

現在 - - 那麼你可以使用這個

@Override 
public void onReceive(Context ctx, Intent intent) { 
    Log.d(TAG, "The Package Name is " + getPackageName(intent); 
} 

String getPackageName(Intent intent) { 
    Uri uri = intent.getData(); 
    String pkg = uri != null ? uri.getSchemeSpecificPart() : null; 
    return pkg; 
} 
+0

謝謝你,你的代碼完美的作品。 – CyBer2t

+0

我已經想出了使用意圖的數據字符串的另一種方法。 String dataString = intent.getDataString(); String [] split_str = dataString.split(「:」); String packageName = split_str [1]; – CyBer2t

+0

是的..也有其他的方式..謝謝! – Jambaaz