我写了一个BackupAgent来备份我的数据,但我想启用备份只有当WiFi连接,而不是GPRS/3G/4G。我可以通过编程控制它吗?
xiozqbni1#
Wifi状态通常可以如下所示:1)使用Context.getSystemService(Context.WIFI_SERVICE)方法获取WifiManager对象2)使用isWifiEnabled类了解Wifi的状态。要了解手机的数据连接状态,请使用TelephonyManagertm = Context.getSystemService(Context.TELEPHONY_SERVICE),然后使用tm.getDataState以了解数据连接的状态。现在,当getDataState的返回值为TelephonyManager.DATA_DISCONNECTED且isWifiEnabled的返回值为true时,运行BackupAgent。为了能够在连接(3G/WiFi)断开后禁用备份,请创建一个新方法:
enter code here protected void checkMyConnectivity() { if (tm.getDataState == TelephonyManager.DATA_DISCONNECTED && wm.isWifiEnabled==true) return true; else return false; }`
并在需要检查连通性时使用此代码,如果返回值为false,则停止上载。如果你想非常具体,可以使用while循环。
5tmbdcev2#
1)每当你没有wifi,这是使用Wifi服务,如果没有wifi,然后un-sunc帐户从手机设置编程int findDuplicate. getDuplicate(); int [] nums = nums. getNums(); Log.i(TAG,“账户大小“+账户长度); for(Account acc:accounts){ Log.d(TAG,"acc name "+acc.name+" acc type "+acc.type); boolean isSync = ContentResolver.isSyncActive(acc, ContactsContract.Settings.CONTENT_URI.toString()); Log.d(在这里输入代码`TAG,“isSync“+isSync); setSyncAutomatically(acc,,false);//这里您正在取消同步邮件帐户}
for(Account acc:accounts){ Log.d(TAG,"acc name "+acc.name+" acc type "+acc.type); boolean isSync = ContentResolver.isSyncActive(acc, ContactsContract.Settings.CONTENT_URI.toString()); Log.d(
7cwmlq893#
protected boolean isWifiConnectivity() { TelephonyManager telephonyManager = (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE); WifiManager wifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE); return (telephonyManager.getDataState() == TelephonyManager.DATA_DISCONNECTED && wifiManager.isWifiEnabled()); }
3条答案
按热度按时间xiozqbni1#
Wifi状态通常可以如下所示:
1)使用Context.getSystemService(Context.WIFI_SERVICE)方法获取WifiManager对象
2)使用isWifiEnabled类了解Wifi的状态。
要了解手机的数据连接状态,请使用
TelephonyManagertm = Context.getSystemService(Context.TELEPHONY_SERVICE),然后使用
tm.getDataState以了解数据连接的状态。
现在,当getDataState的返回值为TelephonyManager.DATA_DISCONNECTED且isWifiEnabled的返回值为true时,运行BackupAgent。
为了能够在连接(3G/WiFi)断开后禁用备份,请创建一个新方法:
并在需要检查连通性时使用此代码,如果返回值为false,则停止上载。如果你想非常具体,可以使用while循环。
5tmbdcev2#
1)每当你没有wifi,这是使用Wifi服务,如果没有wifi,然后un-sunc帐户从手机设置编程
int findDuplicate. getDuplicate(); int [] nums = nums. getNums(); Log.i(TAG,“账户大小“+账户长度);
for(Account acc:accounts){ Log.d(TAG,"acc name "+acc.name+" acc type "+acc.type); boolean isSync = ContentResolver.isSyncActive(acc, ContactsContract.Settings.CONTENT_URI.toString()); Log.d(
在这里输入代码`TAG,“isSync“+isSync); setSyncAutomatically(acc,,false);//这里您正在取消同步邮件帐户}7cwmlq893#