回答

0

Android系統爲您做到了這一點。當已安裝的應用程序第一次啓動時,軟件包管理器向安裝程序廣播Intent.ACTION_PACKAGE_FIRST_LAUNCH。爲了確保您收到它,您需要:

  • 安裝應用程序後立即設置安裝程序包名稱,因爲廣播限制爲爲正在啓動的應用程序設置的安裝程序包名稱。
  • 確保您不使用PackageManager.INSTALL_REPLACE_EXISTING,因爲它會被認爲是一個更新,其中廣播不是由系統
  • 發送註冊您的接收器在運行時的動作Intent.ACTION_PACKAGE_FIRST_LAUNCH,而不是在清單。

註冊的廣播接收器:

registerReceiver(new LaunchReceiver(), new IntentFilter(Intent.ACTION_PACKAGE_FIRST_LAUNCH)); 

樣品廣播接收器:

public class LaunchReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getData() != null) { 
      Log.d(TAG, "Package name: " + intent.getDataString().replace("package:", "")); 
     } 
    } 
} 

欲瞭解更多信息,請閱讀實際的代碼在這裏:PackageManagerService.notifyFirstLaunch()

相關問題