Ограничение использования Android Broadcast Receiver для определенного приложения

У меня 2 приложения.
Если я использую службу, я могу установить разрешение, чтобы только приложение1 могло отправлять намерения в приложение2 :
Определите разрешение в app2 ( уровень защиты: подпись ) и используйте это разрешение в app1 .
Служба в app2 защищена этим разрешением.
Таким образом, только приложение1 может отправить намерение службе в приложении2 , и никакое другое приложение (если моя подпись не просочилась) не может отправить намерение сервис на app2 .

Могу ли я сделать то же самое с широковещательным приемником?

  • app1: sendBroadcast (намерение, разрешение)
  • app2: определить разрешение, использовать это разрешение.

Насколько я понимаю, при использовании sendBroadcast (намерение, разрешение) приложению не нужно "использовать" разрешение. Значение ЛЮБОГО приложения может отправить намерение в app2 . Эти параметры разрешений проверяются только на app2 , чтобы другие приложения не получали это намерение.(Если я удалю app2 и установлю поддельное app2 с той же строкой разрешения определено, поддельное приложение2 может получить намерение от приложение1 , что является неожиданным)

Кстати, если приложение определяет разрешение и использует его само, ProtectionLevel (подпись), похоже, не имеет значения. Это правда?

Теперь я могу установить дополнительное разрешение:

  • app1: Определить разрешение, использовать это разрешение.
  • app2: Получатель ограничен только этим разрешением.

Опять же, если удалить app1 , установится поддельное app1 с тем же самым разрешение, то поддельное приложение1 может отправить поддельное намерение в приложение2 . Что я могу сделать, чтобы app2 не получал поддельные намерения?

Спасибо

6
задан Kara 1 April 2014 в 20:28
поделиться