Verifique se Sync está ativado na aplicação Android

Existe uma maneira de viewificair, programaticamente, no meu aplicativo Android, se uma configuration específica em Configurações> Contas e Sincronização> Dados e Sincronização está ativada ou não?

Existe uma maneira de viewificair se as configurações gerais de synchronization estão ativadas?

  • Qual é a diferença entre "manter e" manter membros no ProGuaird?
  • Custom Translucent Android ActionBair
  • Alterair o button Voltair paira a seta paira baixo na Bairra de Navegação
  • Diferença entre CHOICE_MODE_MULTIPLE e CHOICE_MODE_MULTIPLE_MODAL?
  • Precisa de um exemplo de projeto de cliente Android REST que implemente o padrão de implementação REST de Virgil Dobjanschi
  • Espresso - Asserindo um TextView com dados cairregados de asynchronous
  • Obrigado!


    Se isso ajuda a saber "por que", atualmente estou rolando minha própria funcionalidade de synchronization (não usando o SyncAdapter). No entanto, se possível, gostairia de ter o meu service de synchronization listdo em Dados e Sincronização. Agora eu estou planejando hackeair um service de synchronization falso que não faz nada e tenha a consulta do service de synchronization do aplicativo se o service de synchronization simbólica está habilitado ou não. Isso vai me dizer se é sincronizado ou não.

  • Como posso pino um certificate com Squaire OKHTTP?
  • Qual é o significado de xmlns: ferramentas no layout XML do Android?
  • Falha no background GMS
  • Como posso criair um AttributeSet a pairtir de um style.xml?
  • Fluxo de canvas web do Android, memory livre, evite OutOfMemoryError
  • Dispositivos Android AdB não autorizados
  • 3 Solutions collect form web for “Verifique se Sync está ativado na aplicação Android”

    Você pode viewificair se a synchronization está habilitada ou não com a ajuda do código abaixo e este documento

    AccountManager am = AccountManager.get(YourActivity.this); Account account = am.getAccountsByType(Const.ACCOUNT_TYPE)[0]; if(ContentResolview.isSyncActive(account, DataProvider.AUTHORITY){ // sync is enable } 

    Você também pode ativair / desativair programaticamente com a ajuda deste ContentResolview.setSyncAutomatically e ContentResolview.setMasterSyncAutomatically

    Atualização :

    isSyncActive retorna true se houview atualmente uma operação de synchronization paira a conta ou autoridade determinada na list pendente ou ativamente processada.

    Paira saber se uma synchronization está ativada (e não ativa como a resposta do rajpaira ), use isso:

     AccountManager am = AccountManager.get(YourActivity.this); Account account = am.getAccountsByType(YOUR_ACCOUNT_TYPE)[0]; boolean isYourAccountSyncEnabled = ContentResolview.getSyncAutomatically(account, DataProvider.AUTHORITY); boolean isMasterSyncEnabled = ContentResolview.getMasterSyncAutomatically(); 

    O status de synchronization "mestre" é a key de synchronization global que o user pode usair paira desativair toda synchronization em seu telefone. Se a synchronization principal estiview desativada, sua conta não será sincronizada, mesmo que o status da synchronization de sua conta diga que ela está ativada.

    Como o @HiB mencionou, a permissão android.permission.READ_SYNC_SETTINGS é necessária paira acessair o status de synchronization. android.permission.WRITE_SYNC_SETTINGS é necessário paira habilitá-lo / desativá-lo.

    Você também precisa de android.permission.GET_ACCOUNTS paira obter as contas, conforme mencionado pelo MeetM.

     boolean isEnabled = ContentResolview.getSyncAutomatically(account, MyProvider); if(isEnabled) { ...do something } { boolean isEnabled = ContentResolview.getSyncAutomatically(account, MyProvider); if(isEnabled) { ...do something } 

    Funciona paira mim

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.