Android: Fix the bearer management plugin when running as a service
Since Qt for Android now supports running as a service, we shouldn't use the activity context unconditionally, but instead query the current context from QtAndroidPrivate::context(). Change-Id: Ib793ba890fdbfc0cfe7b20115e41ff64cc73477a Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>bb10
parent
1f665efa91
commit
87e553b58a
|
|
@ -44,7 +44,6 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.util.Log;
|
||||
import android.app.Activity;
|
||||
import android.net.ConnectivityManager;
|
||||
|
||||
public class QtNetworkReceiver
|
||||
|
|
@ -65,29 +64,29 @@ public class QtNetworkReceiver
|
|||
|
||||
private QtNetworkReceiver() {}
|
||||
|
||||
public static void registerReceiver(final Activity activity)
|
||||
public static void registerReceiver(final Context context)
|
||||
{
|
||||
synchronized (m_lock) {
|
||||
if (m_broadcastReceiver == null) {
|
||||
m_broadcastReceiver = new BroadcastReceiverPrivate();
|
||||
IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
|
||||
activity.registerReceiver(m_broadcastReceiver, intentFilter);
|
||||
context.registerReceiver(m_broadcastReceiver, intentFilter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void unregisterReceiver(final Activity activity)
|
||||
public static void unregisterReceiver(final Context context)
|
||||
{
|
||||
synchronized (m_lock) {
|
||||
if (m_broadcastReceiver == null)
|
||||
return;
|
||||
|
||||
activity.unregisterReceiver(m_broadcastReceiver);
|
||||
context.unregisterReceiver(m_broadcastReceiver);
|
||||
}
|
||||
}
|
||||
|
||||
public static ConnectivityManager getConnectivityManager(final Activity activity)
|
||||
public static ConnectivityManager getConnectivityManager(final Context context)
|
||||
{
|
||||
return (ConnectivityManager)activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
return (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -250,15 +250,15 @@ AndroidConnectivityManager::AndroidConnectivityManager()
|
|||
|
||||
m_connectivityManager = QJNIObjectPrivate::callStaticObjectMethod(networkReceiverClass,
|
||||
"getConnectivityManager",
|
||||
"(Landroid/app/Activity;)Landroid/net/ConnectivityManager;",
|
||||
QtAndroidPrivate::activity());
|
||||
"(Landroid/content/Context;)Landroid/net/ConnectivityManager;",
|
||||
QtAndroidPrivate::context());
|
||||
if (!m_connectivityManager.isValid())
|
||||
return;
|
||||
|
||||
QJNIObjectPrivate::callStaticMethod<void>(networkReceiverClass,
|
||||
"registerReceiver",
|
||||
"(Landroid/app/Activity;)V",
|
||||
QtAndroidPrivate::activity());
|
||||
"(Landroid/content/Context;)V",
|
||||
QtAndroidPrivate::context());
|
||||
}
|
||||
|
||||
AndroidConnectivityManager *AndroidConnectivityManager::getInstance()
|
||||
|
|
@ -272,8 +272,8 @@ AndroidConnectivityManager::~AndroidConnectivityManager()
|
|||
{
|
||||
QJNIObjectPrivate::callStaticMethod<void>(networkReceiverClass,
|
||||
"unregisterReceiver",
|
||||
"(Landroid/app/Activity;)V",
|
||||
QtAndroidPrivate::activity());
|
||||
"(Landroid/content/Context;)V",
|
||||
QtAndroidPrivate::context());
|
||||
}
|
||||
|
||||
AndroidNetworkInfo AndroidConnectivityManager::getActiveNetworkInfo() const
|
||||
|
|
|
|||
Loading…
Reference in New Issue