如何启用Android备份代理只在WiFi上?

e4yzc0pl  于 2023-05-12  发布在  Android
关注(0)|答案(3)|浏览(153)

我写了一个BackupAgent来备份我的数据,但我想启用备份只有当WiFi连接,而不是GPRS/3G/4G。我可以通过编程控制它吗?

xiozqbni

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循环。

5tmbdcev

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);//这里您正在取消同步邮件帐户}

7cwmlq89

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());
}

相关问题