当用户进入具有Wi-Fi的区域时,如何打开我的应用程序?这可能吗?假设我的应用程序处于onPause()状态(表示我的设备的主屏幕)。现在当设备与wifi连接时。它会自动打开我的应用程序。
答案 0 :(得分:5)
尝试添加广播接收器并收听网络更改,当wi-fi连接启动您的活动时。像这个解决方案
public class ConnectivityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (((null != wifi)&&(wifi.isAvailable())) || ((null != mobile)&&(mobile.isAvailable()))){
Intent uplIntent = new Intent(context, YourActivity.class);
uplIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(uplIntent);
}
}
}
并添加到清单
<receiver android:name=".receiver.ConnectivityReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
答案 1 :(得分:0)
我能想象的是覆盖onPause()
这样的方法:
@Override
public void onPause() {
String conn_context = Context.WIFI_SERVICE;
final WifiManager wifi = (WifiManager) getSystemService(conn_context);
if (wifi.isWifiEnabled())
{
super.onResume();
}
else
{
super.onPause();
}
}
但你必须想办法处理真正的onPause事件。
答案 2 :(得分:0)
也许可以使用Play商店中的Tasker应用程序(尽管不是免费的)。或者,您可以创建一个服务(http://developer.android.com/guide/components/services.html),其中包含其他答案中列出的代码,然后在WiFi可用时启动您的应用程序(活动)。