Я делю приложение, которое у меня есть, на уровни «платформа» и «приложение», чтобы я мог распространять платформу в виде баночки для использования партнерами - при этом защищая свой IP.
Теперь у меня есть два проекта Eclipse. Сборка не имеет возможности скомпилировать какие-либо ресурсы в jar-файл, поэтому я переместил все ссылки на ресурсы в проект приложения (каталог платформы gen / каталог пуст). Я скомпилировал платформу, а затем вручную использовал jdk для ее jar-файла, импортировал этот jar-файл в проект приложения, пометил jar-файл для экспорта в проекте приложения и успешно скомпилировал и установил тестовое приложение:
public class NotifyService extends Service {
...
@Override
public void onStart(Intent intent, int startId) {
myNotify(intent.getIntExtra(EXTRA_ICON),...));
}
private void myNotify(int iconResource, String s1, String s2, String s3) {
Context c = getApplicationContext();
if (H.VERBOSE) Log.d(TAG, "myNotify()"); //$NON-NLS-1$
Notification n = new Notification(iconResource, s1, currentTime);
Intent nextStep = new Intent(Intent.ACTION_VIEW,Uri));
PendingIntent pending = PendingIntent.getActivity(c, 0, nextStep, 0);
n.setLatestEventInfo(c, s2, s3, pending);
mgr.notify(1, n);
}...
Тестовая операция запускается, как и ожидалось, и я получаю сообщение LogCat () от этой службы. Но никакое уведомление не показывается, и никакая ошибка не зарегистрирована - это просто тихо. ...
В любом случае, я хочу, чтобы партнерские приложения использовали мою платформу, которая подключается к сервисам, контент-провайдерам, Интернету, работам. Кто-нибудь предлагает какое-нибудь руководство?
UPDATE!
Ха-ха ... типично ... когда я переместил все ресурсы с моей платформы в свое приложение, я не передал их должным образом со слоя приложения. Таким образом, приведенный мной пример кода не содержит ошибок. Использование намерения вместо связывания разъединяет «переданные аргументы» от «ожидаемых аргументов», конечно, - и компилятор не жалуется. С исправленным приложением это работает.
Хотя я думаю, что создание платформы для бинарного распространения не является чем-то необычным, я не нахожу много документов по этому вопросу, поэтому я буду добавлять любые важные открытия, когда я открою двери ... надеюсь, что это кому-то пригодится.