Obtendo Localização Com Location API no Android - Parte 1

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

Email inválido.
Blog /Android /Obtendo Localização Com Location API no Android - Parte 1

Obtendo Localização Com Location API no Android - Parte 1

Vinícius Thiengo
(19146) (55) (1) (1)
Go-ahead
"Não podemos estar em modo de sobrevivência. Temos de estar no modo de crescimento."
Jeff Bezos
Kotlin Android
Capa do livro Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia
TítuloDesenvolvedor Kotlin Android - Bibliotecas para o dia a dia
CategoriasAndroid, Kotlin
AutorVinícius Thiengo
Edição
Ano2018
Capítulos19
Páginas1035
Acessar Livro
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Opa, blz?

Nesse vídeo apresento a nova api de localização do Android, Location API (Fused Location Provider) mais precisamente um novo provider fornecido pela nova Location API do Google Play Services. Nesse vídeo também começo com uma nova estratégia de vídeos que é reduzir o tamanho do vídeo e encaixar as partes em uma série de vídeos, dessa maneira não fica desgastante como um vídeo de 30 minutos ou mais. Mas enfim, com a nova API de localização do Google Play Services a funcionalidade de obter localização (coordenadas) ficou mais fácil (menos código), ainda precisa (também utilizando o GPS_PROVIDER via ACCESS_FINE_LOCATION) e rápida (segundo a documentação, a devolução dos dados é imediata). Com o falecido LocationManager, muitas vezes tinhamos de escolher qual provider utilizar ou então quando utilizando os dois tinhamos de implmentar um algoritmo para saber como utiliza-los em nosso APP sem perder a consistência dos dados. Com o Location API as coisas ficam bem mais simples.

Note que a palavra reservada synchronized é para permitir que mesmo em ambiente assincrono nossos método execute de forma sincrona. Observação: a documentação indique a mudança imediata de API se estiver utilizando em sua APP a caracteristica de obtenção de localização, ou seja, alterar o uso do antigo LocationManager para o uso do Location API via Google Play Services. Então é isso.

O link para download do projeto se encontra logo abaixo no post.

Segue links das páginas apresentadas no vídeo:

Página oficial da Location API no site do Android

Página de instalação do Google Play Services na APP Android

Página Dashboard de estatisticas de versões do Android em uso

Implementação do Location API no Eclipse no Blog AndroidHive

Obs. : foi inevitável ultrapassar os 8 minutos, mas no próximo acredito que fico dentro deles sem problemas.

Vlw

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Relacionado

Slides no Android Com a Lib AndroidImageSliderSlides no Android Com a Lib AndroidImageSliderAndroid
Ícones Com Bootstrap Lib no AndroidÍcones Com Bootstrap Lib no AndroidAndroid
Carregando Dados no ListView Com OnScrollListener e Volley no AndroidCarregando Dados no ListView Com OnScrollListener e Volley no AndroidAndroid
Notificação Interna Com a Lib Crouton no AndroidNotificação Interna Com a Lib Crouton no AndroidAndroid

Compartilhar

Comentários Facebook (11)

Comentários Blog (44)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
22/10/2018
Para pegar a localização através do  WiFi / 3G a localização tem que está habilitada?
Responder
Vinícius Thiengo (0) (0)
22/10/2018
Rui, tudo bem?

Mesmo com a necessidade de uso somente da permissão ACCESS_COARSE_LOCATION (WiFi / 3G) ainda será preciso a solicitação de permissão em tempo de execução para aparelhos com o Android 6, Marshmallow, ou superior.

Mais sobre o algoritmo de solicitação de permissão, no link a seguir:

https://www.thiengo.com.br/sistema-de-permissoes-em-tempo-de-execucao-android-m

Abraço.
Responder
Robson (1) (0)
16/06/2017
Olá Thiengo! cara pelo que vi a nova Location API do Google Play Services teve umas mudanças, ficou melhor  
https://android-developers.googleblog.com/2017/06/reduce-friction-with-new-location-apis.html
Responder
Rafael Raupp (1) (0)
16/11/2016
Bom dia Thiengo, é possível pegar a localização do aparelho sem que haja uma conexão com a internet? Realizei o teste com o seu exemplo mas não retorna a localização! Acessando o google maps sem internet é mostrada a localização atual do aparelho.
Responder
Vinícius Thiengo (0) (0)
16/11/2016
Rafael, tudo bem?

É possível sim, as tecnologias GPS e WiFi / 3G são independentes umas das outras.

O Location API também utiliza a Internet para poder retornar uma coordenada, digo, as tecnologias de rede no device.

Essa é uma maneira de o Location API sempre ter algo a retornar quando as coordenadas atuais do device forem requisitadas.

A desvantagem de ter coordenadas vindo das tecnologias de rede é essas tendem a ser muito menos precisas que as que vem do GPS.

Em seu caso, você sem Internet não conseguiu o retorno das coordenadas, certo? Eu ainda não realizei testes com somente a permissão ACCESS_COARSE_LOCATION ativa e sem o sistema de Internet estar funcionando.

Provavelmente somente com o ACCESS_COARSE_LOCATION você precisará das tecnologias de Internet conectadas.

Se possível, utilize também a permissão ACCESS_FINE_LOCATION que permite o Fused provier utilizar também o GPS_PROVIDER.

Veja se assim funciona sem problemas.

Para versões de API maiores que a 23 e o Android em execução sendo o Android M ou superior, você terá de solicitar essas permissões em tempo de execução. Falo sobre esse tipo de permissão no artigo / vídeo do link a seguir: http://www.thiengo.com.br/sistema-de-permissoes-em-tempo-de-execucao-android-m

Mas fortemente recomendo que teste a busca de coordenada com a library do link a seguir: https://android-arsenal.com/details/1/3148

Isso, pois você não precisará ?reinventar a roda?, a library já faz todo o trabalho pesado para ti.

Abraço.
Responder
Rafael Raupp (1) (0)
16/11/2016
Obrigado!
Responder
Renato Muniz (1) (0)
31/10/2016
Boa dia, Thiengo, hoje tentei seguir este tuto, porém da erro de versão do Google play service, na época q vc fez o está em 6.5.87, sabes como descubro ou resolvo essa questão da versão, esse é o erro que retorna: SERVICE_VERSION_UPDATE_REQUIRED, obg!! e parabéns!!!
Responder
Vinícius Thiengo (0) (0)
01/11/2016
Renato, tudo bem?

Atualize todas as librarias de seu projeto, incluindo o Google Play Services. No momento desse comentário a versão mais atual é a 9.8.0:

compile ?com.google.android.gms:play-services-ads:9.8.0'

Tente a atualização para ver se roda sem problemas. Abraço
Responder
28/10/2016
Fala Thiengo blz? Cara, primeiro gostaria de parabenizar pelos seus videos, ajudam muito! Uma dúvida, estou seguindo seu exemplo, porém para versões do SDK acima de 23 (eu creio), ele pede que seja feita uma verificação de permissão em:
 Location l = LocationServices
                .FusedLocationApi
                .getLastLocation(mGoogleApiClient); 
Não sei se você já chegou a comentar isso aqui, mas se tiver algum exemplo parecido que mostre como fazer essa verificação agradeço. O erro que aparece é: Call requires permission which may be rejected by user
Responder
Vinícius Thiengo (0) (0)
28/10/2016
Diego, tudo bem aqui.

A partir do Android M (e API 23) nos developers Android temos de solicitar alguns permissões (dangerous permissions) em tempo de execução, assim o usuário vai decidir se permite ou não o uso do GPS do device dele, por exemplo.

Falei muito sobre isso nesse artigo / post: http://www.thiengo.com.br/sistema-de-permissoes-em-tempo-de-execucao-android-m

D6e uma olhada que acho que vai esclarecer bastante coisa a ti. Abraço
Responder
Talita (1) (0)
14/09/2016
Bom dia, gostei do video, mas nao estou conseguindo a localizacao, esta sempre nulo e dizendo que esta desconectado, podes me ajudar?

09-13 20:16:55.605 20666-20666/? I/LOG: onConnected(null)
09-13 20:30:07.459 25135-25135/com.apilocation I/LOG: onConnected(null)
09-13 20:32:26.237 2116-2423/com.google.android.gms I/ClearcutLoggerApiImpl: disconnect managed GoogleApiClient
09-13 20:34:26.207 2116-25356/com.google.android.gms I/EventLogChimeraService: Aggregate from 1473807866063 (log), 1473807866063 (data)
Responder
Vinícius Thiengo (0) (0)
17/09/2016
Talita, td bem?
Está testando no emulador?
Assumindo que sim, ligue a funcionalidade de Geolocation nele, como fiz com o Genymotion. Outra opção é rodar o exemplo em um device real. Abraço
Responder
Kauã Estriga (1) (0)
30/08/2016
Fala Thiengo, tranquilo?
Vejo muitos videos seus aqui no seu blog e estão me ajudando muito no meu estágio. Me salvou de poucas e boas já haha. Queria te perguntar se essa maneira de acessar a localização também funciona pra API 17 que é um projeto que estou desenvolvendo na empresa onde estou. Se não for melhor outra maneira pra essa API, você sabe me dizer qual é? Agradeço pelas ajudas e parabéns pelo site.
Responder
Vinícius Thiengo (0) (0)
02/09/2016
Kauã, respondido em email. Abraço
Responder
Anselmo Muller (1) (0)
29/07/2016
Parabéns pela inciativa, com certeza ajuda muita gente.
Gostaria de saber como colocar a localização em background pois gostaria de enviar a localização para um servidor, mesmo com o smart  em standby.
Responder
Vinícius Thiengo (0) (0)
01/08/2016
Vlw Anselmo.
Nesse caso, mesmo em standby, provavelmente o Service funcione com vc. Mas é bom saber que como sua APP não estará mais no foreground (primeiro plano) o Android pode desligar o Service a qualquer momento para ter mais recursos disponíveis e ele somente voltará quando houver recursos sobrando. Além do mais que a conexão com a Internet e o sistema GPS "bebem" a bateria do device, então tente manerar nos intervalos em que os utiliza, principalmente o sistema GPS. Abraço
Responder
09/10/2015
No video vc usa o link https://developers.google.com/android/guides/setup , para informar no as configurações do GoogleServices.
Porém foi feito uma atualização no site.
Então eu tentei utilizar seguindo o site. Mas a localização não veio.

Tentei usar como vc passou no site e também a localização não veio.

Você usa a configuração do, compile dentro do modulo gradle já no site do google services informar para ser no build.gradle.

Outro ponto é que você informa no manifesto depois de <aplication> a tag meta-dados no site não informa que deve ser usado esta tag.

Pra complementar você herda a ActionBarActivity porém no android studio me informa que ela entrou em desuso. Indica outra?

Estou meio perdido com a atualização pode me ajudar? Pois nos videos a seguir esta ocorrendo erros também.
Responder
Vinícius Thiengo (0) (0)
10/10/2015
Fala Wanderson, blz? O PlayService do location é: com.google.android.gms:play-services-location:8.1.0 No caso o que deve ser utilizado no gradle app level (o "Module: app"). No lugar do ActionBarActivity utilize o AppCompatActivity. Na época em que fiz essa série os vídeos estavam ok, pois não tinha as atualizaçÕes presentes hj no Android. No build.gradle APP level coloquei as seguintes alterações:
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "br.com.thiengo.exampleapilocation"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'me.tatarka.support:jobscheduler:0.1.1'
}
No build.gradle top level coloquei as seguintes configurações:
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.google.gms:google-services:1.3.0-beta1'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
Nesse código ainda mantive a referência do Google Play Services dentro da tag <application> no Manifest, mantive, pois não houve complains do AndroidStudio, porém nesse vídeo (http://www.thiengo.com.br/gcm-downstream-messages-push-message-android-parte-1 ) pode notar que já utilize a referência ao Play Services com o auxilio de um arquivo json gerado no site de APIs do Android. Não encontrei o mesmo caminho para gerar um json de referência com o uso da API Location, provavelmente deve estar junto a API de Maps ou de Places, teria de verificar melhor. No mais, somente com as atualizações citadas acima e se possível seguindo o novo modelo de permissões do Android (veja esse link: http://ricardolecheta.com.br/?p=560 ) o exemplo deve funcionar sem problemas. Note que nos vídeos posteriores, com as atualizações comentadas aqui, será necessário utilizar as entidades de java.net.HttpURLConnection ao invés das do package org.apache.http. Abraço
Responder
28/09/2015
ola thiengo, no meu projeto so consigo ver a localização depois que abro o app maps do celular, isso esta correto?
Responder
Vinícius Thiengo (0) (0)
30/09/2015
Fala Rudda, blz?
Se somente consegue ver a localização depois que o APP de Maps do Google é aberta, não, mas isso é tb parte da limitação do Location API, ele pode sim não encontrar nenhuma coordenada e retorna null. O Script do vídeo 2 (http://www.thiengo.com.br/location-api-no-android-atualizacao-de-localizacao-parte2 ) eu tive mais sucesso em não ter esse tipo de problema. Outra alternativa é ainda utilizar a maneira antiga (que se não me engano ainda é aceita, não está deprecated) onde podemos explicitamente definir o provider que será utilizado, veja esse vídeo (http://www.thiengo.com.br/gps-triangulacao-de-antenas-e-locationsource-no-android ). Abraço
Responder
18/09/2015
Boa noite

Cara teria como você fazer um tutorial ou um video mostrando como instalar o Location API no eclipse?Meu projeto está todo no eclipse e não estou sabendo como essa API nele.
Obg!
Responder
Vinícius Thiengo (0) (0)
19/09/2015
Fala Leo, blz?
Veja se esse tuto do Vogella não lhe ajuda: http://www.vogella.com/tutorials/AndroidLocationAPI/article.html
Abraço
Responder
19/09/2015
Boa tarde
Na verdade isso já é a programação eu queria era a configuração e após 1 semana procurando como configurar essa API no eclipse achei hoje esse cara http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/  já instalei agora e só assistir seu vídeo pela 3x e testar =).
Responder
WELLINGTON (1) (0)
18/08/2015
Você faz trabalho como free?
Responder
Vinícius Thiengo (0) (0)
18/08/2015
Fala Wellington, blz?
Hj não, mas posso lhe indicar bons contatos. Se tiver interesse, thiengocalopsita@gmail.com. Abraço
Responder
Antonio Luiz (1) (0)
19/05/2015
Tudo bem Vinícios?
Preciso montar um aplicativo onde digito o endereço e aparecem as pessoas que neste se encontram. estas pessoas farão parte de uma lista cadastrada.
é possível me auxiliar.
Obrigado.
Responder
Vinícius Thiengo (0) (0)
19/05/2015
Fala Antonio, td bem sim.
Pode continuar mandando as dúvidas que sempre que possível eu respondo, somente não vou programar para ti. De começo assista toda a essa série de Location API no Android, leia os comentários dos posts dessa série e para complementar assista aos vídeos de Google Maps V2 dessa PlayList (https://www.youtube.com/playlist?list=PLBA57K2L2RIKWuo6d7LdOeS1u0rQ_RBPA ), dessa forma acredito que vc vai  ficar mais tranquilo em como montar sua APP. Abraço
Responder
Antonio luiz (1) (0)
20/05/2015
Bom dia Vinicius,
Seria muita pretensão pedir que programe a sua orientação já é o suficiente e claro, agradeço o  retorno.
Muito obrigado pelo material disponibilizado.
Responder
Vinícius Thiengo (0) (0)
21/05/2015
Fala Antonio,
Realmente para mim não dá para programar, não sei se ajuda, mas costumo responder as perguntas enviadas pela parte da manhã (7h - 10h) e de madrugada (2h - 3h). Abraço
Responder
Daniel (1) (0)
10/05/2015
e ai thiego, beleza?
Cara, eu queria pegar as coordenadas somente quando iniciar o aplicativo.
E tem como eu pegar, sem ter que ativar o gps?
Responder
Vinícius Thiengo (0) (0)
10/05/2015
Fala Daniel, blz sim.
Tem como sim pegar as coordenadas somente no inicio da APP, utilize o getLastLocation() apenas uma vez, como no vídeo. Como o provider é o FUSED, ele vai pegar as coordenadas melhor tecnologia que estiver ativa no momento, logo ele não precisa do GPS, porém se não houver coordenadas disponíveis ele retorna vázio. Abraço
Responder
Daniel (1) (0)
12/05/2015
Sim, fiz aqui... mais ele ta pegando coodernadas somente quando o GPS esta ativo, quando eu desativo retorna null.
Eu gostaria de pegar essas coodernadas por 3G ou WIFI.
Responder
Vinícius Thiengo (0) (0)
13/05/2015
Daniel, faça o seguinte. Em seu AndroidManifest.xml coloque somente a permission:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

A FINE_LOCATION vc remove. Ve se assim vai. Abraço
Responder
Daniel (1) (0)
13/05/2015
Ja está somente COARSE_LOCATION.
Meu codigo esta assim:

  protected synchronized void capturarLocalizacao() {
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(LocationServices.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
        mGoogleApiClient.connect();

@Override
    public void onConnected(Bundle bundle) {
        Log.i("DADOS", "onConnected(" + bundle + ")");
        Location l = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
        if(l!= null)
        {
            Log.i("DADOS","LATITUDE: "+l.getLatitude());
            Log.i("DADOS","LONGITUDE: "+l.getLongitude());
            longitude=l.getLongitude();
            latitude=l.getLatitude();
        }
    }
Responder
Vinícius Thiengo (0) (0)
14/05/2015
Daniel, está somente com o getLastLocation(), com o passar dos vídeos descobri que ele não é lá essas coisas. Faça o seguinte, utilize o script de update que utiliza o LocationListener, esse script (http://www.thiengo.com.br/location-api-no-android-atualizacao-de-localizacao-parte2 ). Porém para não acabar com a bateria do device, assim que pegar a coordenada vc desativa o script de atualização e então utilize um AlarmManager (http://www.thiengo.com.br/alarmmanager-no-android-sua-app-executando-em-tempos-definidos ) para ativar esse script novamente depois de ter passado o tempo de atualização que vc definiu em seu APP, se não tiver período de atualização, chame apenas uma vez. No script que utilizo ele é dependente do getLastLocation(), porém vc pode deixar uma coordenada predefinida e não utilizá-lo. Outra sugestão é deixar o FINE_LOCATION definido tb, pois o FUSED PROVIDER saberá qual utilizar quando for solicitado a retornar uma coordenada, mesmo que vc queira a do WiFi ou 3G, a do GPS é mt mais precisa. Abraço
Responder
Bruno Oliveira (1) (0)
22/03/2015
03-22 17:20:07.159    1903-1903/com.listmarketbeta I/LOG? onConnected(null)
03-22 17:20:07.454    1903-1903/com.listmarketbeta I/LOG? onConnected(null)
03-22 17:20:09.257    1816-1985/android.process.media E/SQLiteLog? (283) recovered 119 frames from WAL file /data/user/0/com.android.providers.media/databases/internal.db-wal
03-22 17:20:09.536    1607-1607/com.google.process.gapps V/GLSUser? [LoginAccountsChangedWakefulBroadcastReceiver] recieved broadcast intent with action: android.intent.action.BOOT_COMPLETED
03-22 17:20:09.640    1607-2014/com.google.process.gapps I/GLSUser? [LoginAccountsChangedIntentService] Updating account challenges...
03-22 17:20:09.677    1607-2014/com.google.process.gapps I/GLSUser? [LoginAccountsChangedIntentService] FRP is not supported on current device.
03-22 17:20:11.121    1816-1985/android.process.media E/SQLiteLog? (283) recovered 253 frames from WAL file /data/user/0/com.android.providers.media/databases/external.db-wal
03-22 17:20:14.623    1749-1749/com.google.android.gms D/NetworkLogImpl? Loaded NetworkSpeedPredictor
03-22 17:20:14.742    1919-2233/com.android.providers.calendar E/SQLiteLog? (284) automatic index on view_events(_id)
Responder
Vinícius Thiengo (0) (0)
23/03/2015
Teve algum error depois do BOOTP_COMPLETED? Aparentemente ainda é a questão do onConnected(null) que não tem mta relevancia. Mas ainda estou na dúvida se a APP está gerando um erro devido a isso, está? Abraço
Responder
Bruno Oliveira (1) (0)
22/03/2015
Thiengo, vc é o Android hive Brasileiro kk, parabens!

2279-2279/com.listmarketbeta I/LOG? onConnected(null)

Retorna Null, uma ajuda por favor Thiengo :/
Responder
Vinícius Thiengo (0) (0)
23/03/2015
Fala Bruno, blz?
Na verdade, se estiver com o mesmo script do exemplo, esse null não é falha, é somente a entidade que vc está requisitando serviço (Location API) que não está retornando nenhum dado "extra" (vamos adotar esse nome) para vc utilizar em seu script, não afetará em nada no funcionamento de seu script depois dessa linha. Conseguiu pegar a getLastLocation() depois disso? Se não, tente ligar e o GPS e rodar o script novamente, provavelmente se não rodou antes do GPS é pq o device não tem nenhuma coordenada salva que permita o FUSED_PROVIDER utiliza-la. Abraço
Responder
luciana (2) (0)
03/03/2015
Excelenteee!
Responder
Vinícius (2) (0)
17/02/2015
Olá Thiengo,

Seus vídeos sempre são ótimos e venho acompanhando já faz bastante tempo. Uma dica por mim seria: não reduza o tempo de seus vídeos se a clareza deles também for diminuída, por que por mais que seus vídeos sejam longos, entendemos 100% deles pois você é bem didático e isso faz com que valha a pena cada minuto nele. Muito obrigado Thiengo.
Responder
Vinícius Thiengo (1) (0)
18/02/2015
Vlw Vinícius, mas acredito que assim, com vídeos divididos, vai ficar melhor o entendimento tb... mas vamos ver, vamos testar, se não ficar legal volto para o modelo anterior. Abraço
Responder
Alessandro (1) (0)
16/02/2015
Olá gostei do vídeo, mais uma dica como você vai adotar videos por partes teria como diminuir o tempo entre os videos então? Parabéns pelas aulas
Responder
Vinícius Thiengo (0) (0)
17/02/2015
Fala Alessandro, blz?
Vou ter de estudar essa possibilidade sim, porém nos grupos que divulga (e ajudam o site a crescer) os admin tendem e reclamar quando passa de um post por semana... mas mesmo assim vou melhor os efeitos disso. Abraço
Responder