2016-07-20 43 views
1

我想給INSTALL_REFERRER廣播發送到我的代碼,推薦應用程序,但我得到一個空指針異常,當我試圖找回這是廣播包的名稱:檢查該包的廣播接收器的目的是

intent.getPackage(); // returns null 

這是我正在使用的代碼。

在廣播接收器類:

<receiver android:name=".MyReceiver"> 
     <intent-filter> 
      <action android:name="com.android.vending.INSTALL_REFERRER" /> 
     </intent-filter> 
    </receiver> 

我從ADB SHELL

am broadcast -a com.android.vending.INSTALL_REFERRER -n <package.name>/.MyReceiver --es "key" "multiple values here" 

回答

0
發送廣播:

@Override 
public void onReceive(Context context, Intent intent) { 
    if (intent == null) 
     return; 
    String pack = context.getPackageName().toString(); 
    String intentpack = intent.getPackage(); 
    intentpack = intent.getDataString(); 
    if (intentpack.equals(pack)) 

我已經在清單文件中添加的意圖過濾器

我更改了代碼

intent.getPackage() 

intent.getComponent().getPackageName(); 

和它的工作!