2016-01-13 103 views
1

我跟蹤我安裝了兩種方法就像你可以在這裏看到我的清單:安裝跟蹤需要導出嗎?

<receiver 
    android:name="com.google.android.gms.tagmanager.InstallReferrerReceiver" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

<receiver 
    android:name=".tracking.ReferralReceiver" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

第二接收機產生掉毛警告先不要。這是否意味着Google知道他們的InstallReferrerReceiver並知道讓它導出是安全的?

PS:我知道我可以使用tools:ignore="ExportedReceiver"

回答

1

當一個應用程序從谷歌Play商店安裝的INSTALL_REFERRER意圖廣播。 android:exported="true"表示允許接收機從其他應用接收廣播意圖。你確實需要這個,否則你將無法收到其他應用發送的事件(系統或Play商店應用,我不確定)。

但是,如果您檢查文檔android:exported,則其默認值爲true,如果它至少有一個<intent-filter>,否則它是錯誤的。

所以總結起來,你需要android:exported="true"趕上事件。但是省略這個屬性也是可以的,因爲你的接收器的默認值是true(但是它更安全)。

關於lint警告:它可識別的名稱,這就是爲什麼它知道第一個版本是安全的。

+0

所以我猜,我可以放心地忽略此警告。我可能會打開一個錯誤,因爲這是此操作的一般情況。 – rekire

+0

如果您打開一個錯誤,請將其作爲功能請求打開。這只是一個警告,不是一個錯誤。 –

+0

恕我直言,這個警告出現是錯誤的。然而,這並不重要。 – rekire