Eu fiz um pouco diferente. Na chamada ficou assim:
**********
Toast.makeText(ctx, "Conectando..." , 10).show();
try {
setMobileDataEnabled(ctx, true);
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (WebService.Conectado(ctx)){
Toast.makeText(ctx, "Conexão 3G habilitada." , 5).show();
} else{
Toast.makeText(ctx, "Ops, parece que não consegui habilitar sua 3G.." , 5).show();
}
break;
**********
e na função eu não usei o throws Exception mas fiz um catch pra cada exception, porem não fiz nenhum tratamento além de imprimir o erro com o e.printStackTrace() e um return false.
Tenta fazer assim só pra ver se funciona.
Novo Hamburgo - RS - Brasil
------------------
2012/7/2 Gabriel Augusto <gabrielaugustodm@gmail.com>
Acredito que seja algo que estou fazendo errado então.A função ficou dessa forma://função - forçar uso do 3gprivate Boolean setMobileDataEnabled(Context context, boolean enabled) throws Exception {final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);Class<?> conmanClass;conmanClass = Class.forName(conman.getClass().getName());final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");iConnectivityManagerField.setAccessible(true);final Object iConnectivityManager = iConnectivityManagerField.get(conman);final Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);setMobileDataEnabledMethod.setAccessible(true);if (setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled) != null){return true;} else {return false;}}e chamei dessa forma:boolean enabled = false;//força o uso do 3gtry {if (setMobileDataEnabled(this, enabled)) {Toast.makeText(this, "Dados ativados", Toast.LENGTH_LONG).show();}} catch (Exception e) {Toast.makeText(this, "Erro: " + e.toString(), Toast.LENGTH_LONG).show();e.printStackTrace();}E gera o erro java.lang.reflect.InvocationTargetExceptionEm 2 de julho de 2012 14:59, Maicon Strey <mstrey@gmail.com> escreveu:Gabriel,pra mim funcionou normal num Galaxy 5 com 2.1.Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
2012/7/2 Gabriel Augusto <gabrielaugustodm@gmail.com>O problema não são as exceções, o problema é que não estou conseguindo usar a função no Android 2.2. Não sei se estou utilizando da forma correta, gostaria de saber se alguem ja utilizou a mesma..Abraço,Gabriel AugustoEm 2 de julho de 2012 12:48, Henrique Melo <henrique1985@gmail.com> escreveu:
vc pode adicionar apenas Exception, caso a grande porção de exceções seja o problema.Em 2 de julho de 2012 11:45, Gabriel Augusto <gabrielaugustodm@gmail.com> escreveu:
Estou tendo problemas para usar o metodo de habilitar a conexão 3g que vc mandou: http://maicon.strey.nom.br/blog/2012/06/28/habilitar-conexao-3gwifi-programaticamente-2/Após adicionar os metodos reflect, fui obrigado a adicionar uma porção de exceções: ClassNotFoundException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, NoSuchMethodException, InvocationTargetExceptionAlguem ja utilizou essa funçao no 2.2?Abraço,Gabriel AugustoEm 29 de junho de 2012 22:05, Maicon Strey <mstrey@gmail.com> escreveu:
Creio que tu possa fazer as duas coisas.só faz o ping se o 3G estiver ativo.mas fazer o ping é interessante sim.Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
2012/6/29 Gabriel Augusto <gabrielaugustodm@gmail.com>Certo. Pelo que vi nos links que ele mandou, a melhor maneira é dando ping em um site?Visto que, verificando a conexão apenas, o usuario poderia estar em uma conexao que seja nula.Meu maior foco é verificar a conexão 3G, porque os usuarios estariam na rua.Abraço,Gabriel AugustoEm 29 de junho de 2012 17:52, Maicon Strey <mstrey@gmail.com> escreveu:
Não vai conectar,dai tu usa o metodo que o douglas postou pra ver se conectou antes de fazer qualquer coisa.
Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
2012/6/29 Gabriel Augusto <gabrielaugustodm@gmail.com>Mas e no caso de o usuario não ter conexão? Estando em uma area sem cobertura, por exemplo.Como proceder?Gabriel AugustoEm 29 de junho de 2012 17:43, Maicon Strey <mstrey@gmail.com> escreveu:
Se tu quiser podes colocar opções direto no app pra ativar a conexão.aqui eu explico como fazer:http://maicon.strey.nom.br/blog/2012/06/28/habilitar-conexao-3gwifi-programaticamente-2/
Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
2012/6/29 Douglas Drumond <drumond.douglas@gmail.com>Google:android test if device can access internetRetornou:--Douglas Drumond
2012/6/29 Gabriel Augusto <gabrielaugustodm@gmail.com>Pessoal,Comecei a programar para Android a poucas semanas.No projeto que estou desenvolvendo, utilizo webservice para enviar informações obtidas a partir do celular. Os dados são enviados em um intervalo de tempo.Agora preciso começar a prepara-lo para ausencia de conexao (Wi-fi ou 3G).Na opinião de vocês, qual a melhor maneira de verificar a existencia de conexão? Na ausencia, irei salvar no SQLite e só enviar quando tiver conexão.Abraços,Gabriel Augusto--
0 comentários:
Postar um comentário