Я добавляю Android C2DM в проект библиотеки Android. Я начал с com.google.android.c2dm пакета , который входит в JumpNote и Chrome To Phone . Чтобы использовать этот пакет, вы должны создать подкласс службы C2DMBaseReceiver , которая принимает идентификатор отправителя в качестве аргумента своего конструктора. В JumpNote этот аргумент инициализируется с использованием жестко закодированной статической переменной в классе конфигурации. Однако в проекте библиотеки Android, который может использоваться несколькими одновременно запущенными приложениями, я не думаю, что могу использовать жестко закодированную статическую переменную (то есть, я считаю, что это может привести к проблемам, когда / если несколько приложений пытаются доступ / изменение статической переменной).
Я попытался придумать способ инициализации идентификатора отправителя, не используя статическую переменную, и до сих пор в тупике.
Очевидным решением будет использование строки Manifest или Resource или комбинации из 2. Например, в strings.xml у меня может быть строка «ac2dmSender», доступ к которой осуществляется в дочернем элементе метаданных Объявление службы C2DMReceiver в манифесте. Однако кажется, что вы не можете получить ссылку на PackageManager или ResourceManager из статического контекста, поэтому у меня нет способа затем извлечь метаданные таким образом, чтобы передать их конструктору C2DMBaseReceiver.
Пожалуйста, дайте мне знать, что я что-то упустил! Заранее спасибо.