我可以使用 JNI 使用 java 文件发出通知。我能做到这一点的唯一方法是像这样替换清单中的活动行:来自:
<activity android:name="org.qtproject.qt5.android.bindings.QtActivity" >
到java文件的路径:
<activity android:name="org.qtproject.example.notification.NotificationClient" >
否则通知将不会显示!
如果我想使用多个 Java 文件来使用 JNI 做其他事情怎么办?如何在清单中添加多个活动?
这是我的 NotificationClient.java:
package org.qtproject.example.notification;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.app.PendingIntent;
import android.app.Activity;
import org.qtproject.qt5.android.bindings.QtActivity;
public class NotificationClient extends org.qtproject.qt5.android.bindings.QtActivity
{
private static NotificationManager m_notificationManager;
private static Notification.Builder m_builder;
private static NotificationClient m_instance;
private static PendingIntent contentIntent;
private static Intent intent;
public NotificationClient()
{
m_instance = this;
}
public static void notify(String s)
{
if (m_notificationManager == null) {
m_notificationManager = (NotificationManager)m_instance.getSystemService(Context.NOTIFICATION_SERVICE);
m_builder = new Notification.Builder(m_instance);
m_builder.setSmallIcon(R.drawable.icon2);
m_builder.setDefaults(Notification.DEFAULT_SOUND);
m_builder.setContentTitle("A message from Qt!");
}
intent = new Intent(m_instance, NotificationClient.class);
contentIntent = PendingIntent.getActivity(m_instance, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
m_builder.setContentIntent(contentIntent);
m_builder.setContentText(s);
m_notificationManager.notify(1, m_builder.build());
}
}