В Android Как показать уведомление из библиотеки C - PullRequest
0 голосов
/ 08 февраля 2011

После завершения некоторой работы в библиотеке Middleware C необходимо отобразить несколько уведомлений на панели уведомлений. Пожалуйста, предложите, если какие-либо обходные пути, чтобы показать уведомления. Эта библиотека C не имеет GUI часть этого.

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Как сказал Nitrex, вам необходимо вызвать метод в вашем классе Java через JNI:

В C:

void
Java_com_example_hellojni_HelloJni_doSomeInterestingJob( JNIEnv* env,
                                                         jobject thiz )
{
    jclass cls = (*env)->GetObjectClass(env, thiz);
    jmethodID mid = (*env)->GetMethodID(env, cls, "callback", "()V");
    if (mid == 0)
        return;
    (*env)->CallVoidMethod(env, thiz, mid);
}

В вашем "HelloJni" (пожалуйста, найдите лучшийимя ;-)) класс, вы можете позвонить:

public void callback() {
    Log.d(TAG, "...");
    // Start notifications now.
}
0 голосов
/ 08 февраля 2011

Вам придется вызывать java-методы из вашего кода C с использованием кода Java Native Interface (JNI). Читайте о JNI онлайн, чтобы узнать, как вы можете это сделать. Затем в Java, вы можете добавить уведомления в панель уведомлений. Если вы не можете понять, как вызывать java-методы, прокомментируйте здесь или оставьте новый вопрос.

...