Aplicação para Android

Desenvolverei minha segunda aplicação em Android enquanto escrevo este post. O objetivo deste texto não é desenvolver um tutorial de como criar sua primeira aplicação em Android, há inúmeros artigos que abordam este tema, e também não seria justo que eu escreva um tutorial de primeira aplicação se eu também estou usando um tutorial de primeira aplicação.

Colocarei neste texto, algumas dúvidas que tive durante o desenvolvimento e como solucionei. Talvez as soluções não sejam as melhores, mas fique a vontade para comentar e sugerir alternativas no final do post.

As vezes não conseguimos dedicar tempo ao aprendizado de tudo que gostaríamos. Digo isso porque nunca tive tempo suficiente para aprofundar-me em desenvolvimento móvel, estudei mais os conceitos do que os assuntos técnicos que envolvem o desenvolvimento de aplicações móveis.

Eu sempre utilizei Android e por este motivo estou criando uma aplicação para esta plataforma. Meu intuito é apenas praticar, já fiz isso no passado e tive as mesmas dúvidas e, como não anotei a maioria e não utilizo esse conhecimento no dia a dia, esqueci as respostas.

Objetivo

Eu apoio uma rádio web chamada Morcegão FM, ela toca Rock 24 horas por dia, não possui comerciais, tem uma comunidade de ouvintes ativa nas redes sociais e querem ouvi-la em todos os lugares.

Um ouvinte,  Diogo Costa, desenvolveu um aplicativo para iPhone para Morcegão FM. Eu desenvolvi a primeira versão do aplicativo para Android um pouco antes da aplicação para iPhone.

A qualidade da aplicação para iPhone ficou superior a aplicação de Android e recentemente a Morcegão FM passou por uma mudança técnica importante, eles mudaram as URLs e tecnologia de streaming, e por isso precisamos mudá-las no aplicativo.

Para ajudar, eu perdi todo código fonte da aplicação para Android, por isso digo que é minha segunda aplicação.

Remover Barra de Título

Após abrir o Eclipse e criar o projeto para Android, conectei meu S3 e rodei a versão “Hello World” do aplicativo e a barra de títulos é exibida sempre, na versão antiga do aplicativo a barra de títulos era inibida.

Agora eu não quero mais.

Barra de Títulos
Barra de Títulos

Para removê-la, basta adicionar o código da linha três no método onCreate do Activity:

@Override
protected void onCreate(Bundle savedInstanceState) {
     this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

 Fonte: StackOverflow

Capturar o volume atual do Android

Eu coloquei na aplicação um seekBar  para funcionar como controle de volume, para inicializá-lo utilizei os dois trechos de código abaixo, o primeiro coloquei no onCreate  da activitity

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
 seek_volume.setMax(this.getMaxVolume());
 seek_volume.setProgress(this.getVolume());
private int getVolume()
{
  return audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);		
}

private int getMaxVolume()
{
  return audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
}

Fonte: StackOverflow

Manter o volume atualizado

Encontrei um pequeno problema, coloquei um seekbar para controlar o volume, ao usar um pouco a aplicação, percebi que quando utilizo os botões de volume do aparelho, o volume não é alterado na tela.

Lembrei que as principais aplicações (Netflix, Youtube), não exibem o slider de volume, somente quando o usuário clica no indicador para alterar o volume e/ou as teclas são pressionadas. Acredito que talvez eu entenda essa decisão.

Pesquisei no StackOverflow, muita gente quer monitorar as mudanças no volume de áudio do Android, mas todas as respostas tem algum porém, ou funcionam apenas em alguns dispositivos.

Como esta é a primeira versão da aplicação, programei para que o volume seja atualizado no evento OnStart da Activity, deste modo, sempre que a aplicação é exibida na tela, o sistema alterará o volume. Em breve eu coloco um Watch nos botões de volume e atualizo a tela, mas aquele popup de volume não disparará aquele evento :(

 Iniciar o Streaming

java.io.IOException: setDataSource failed.: status=0x80000000

O erro acima ocorreu quando executei o trecho de código abaixo:

MediaPlayer media;
media = new MediaPlayer();  
media.setAudioStreamType(AudioManager.STREAM_MUSIC);
Uri uri = Uri.parse("http://mystreaming.com.br:8000/streaming.m3u");
media.setDataSource( BaseApp.getContext(), uri );

Pesquisei um pouco sobre o assunto e o erro era básico, você precisa parametrizar no arquivo Manifest o pedido de permissão para uso do acesso a internet do usuário.

Basta adicionar no arquivo Manifest o trecho de código abaixo:

<manifest package="com.sample.player"
    android:versionCode="1"
    android:versionName="1.0" xmlns:android="http://schemas.android.com/apk/res/android">

[ ... ]

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="21" />
    <uses-permission android:name="android.permission.INTERNET"/>

[ ... ]

</manifest>

Fonte: StackOverflow

Velocidade do Processador menor do que o máximo

A semana que antecede este post foi sofrível do ponto de vista de utilização do meu notebook. Estou desenvolvendo meu TCC da pós-graduação e percebi que o notebook estava bem lento.

Aproveitando o feriado de Tiradentes, tentei resolver o problema e encontrar o que estava ocorrendo. Ao entrar no “Gerenciador de Tarefas” do Windows 8.1, de cara percebi o que poderia estar causando a lentidão no meu Notebook.

Gerenciador de Tarefas com o processador abaixo
Gerenciador de Tarefas com o processador abaixo

A velocidade do processador não saia do 0,76GHz, no blog do Lucas Peperaio há várias dicas de como resolver este problema, tentei todas e não obtive sucesso com nenhuma. As soluções que ele deu e os possíveis problemas informados em seu blog fizeram com que eu lembrasse de algo importante:

  • Energia

Mesmo configurando meu Notebook para a opção de alto desempenho, o processador negava-me o privilégio de que 100% de sua performance fosse utilizada. Lembrei que meu notebook veio com uma fonte de 150W e já faz alguns dias que, por pura preguiça, estou utilizando a fonte de 60W do notebook da minha esposa.

A fonte de 60W carrega a bateria, mas deixa o notebook trabalhando em sua configuração mínima de configuração de energia.

Essa fonte serve para o notebook dela (Dell Vostro), para o meu notebook (Dell XPS 15) essa fonte serve para quebrar um galho apenas.

Abaixo, imagem, fonte de 150W plugada e o notebook na configuração de economia de energia e com o mesmo processamento da imagem anterior:

 

Gerenciador de Tarefas com a fonte de 150W
Gerenciador de Tarefas com a fonte de 150W

 

Abraço.

 

 

 

Pesquisa

Pessoal, nos próximos dois meses concluirei minha pós-graduação e eu e meu grupo estamos preparando um projeto, que envolve responsabilidade social, para contribuir com os protetores/ongs e pessoas que querem adotar um animal de estimação.

Criamos algumas pesquisas para direcionar nossos esforços, e se tudo der certo, criaremos uma nova ferramenta para auxiliar todos os envolvidos com a adoção de animais.

 

Clique aqui caso você se considera um protetor ou é uma ONG – Formulário de pesquisa

Clique aqui caso você já tenha adotado ou deseja adotar um animal – Formulário de Pesquisa

ARTE

Milestone: ShadowmodBR 0.9.16 para Oficial 2.2

Apesar de estar satisfeito com a versão 2.1 oficial do meu Motorola, há tempos vinha namorando a idéia de aplicar uma versão custom do Android[bb].

Apliquei a ShadowModBr no meu Milestone e este mês completam três meses que estou utilizando a ShadowModBr no meu celular, a única coisa que me incomoda, é que inúmeras vezes meu aparelho indica que o sinal da operadora está OK e ele não efetua e nem recebe chamadas, preciso sempre passar ele para modo de avião ou reiniciar o aparelho para que o sinal da operadora normalize.

Na dúvida, se o problema é a rede da Vivo[bb], meu aparelho ou a Shadow, decidi aplicar a versão oficial da Motorola[bb] de volta no meu celular.

Neste post descrevi passo a passo o que fiz para colocar a versão 2.2 oficial da Motorola em meu aparelho, não me responsabilizo por nenhuma destas ações, que podem danificar o seu celular. Portanto, caso queira seguir estas instruções, faça por sua própria conta e risco.

Continuar lendo Milestone: ShadowmodBR 0.9.16 para Oficial 2.2

Como ouvir a Morcegão FM

UPDATE: Desde o dia 22/05 a morcegaofm.com.br está com alguns problemas técnicos com seu blog,  impossibilitando que as pessoas consigam achar os links para ouvir, caso você queira ouvir mas precisa do blog para achar os links:

1. Media Player e Winamp:  128 Kbps 64kbps 32kbps –  Estes 3 links podem ser bloqueados em algumas empresas, caso você utilizava o WebPlayer por causa de algum bloqueio na sua rede utilize este link

2. Se você escuta por celular ou pelo Winamp, você consegue pesquisar e localizar a rádio através das pesquisas dos aplicativos, abaixo, neste post tem o tutorial de como fazer isso.

Se você chegou até aqui, divulgue a informação e quando o site da Morcegão voltar, vamos divulgar que ele voltou, pois minha vontade é realmente de tirar este texto daqui…pois isso significa que tudo voltou ao normal lá no blog da Morcegão FM.

Comunidade é pra isso, eles entram com a música e a gente com os ouvidos =)

 

 

Já faz algum tempo que estou querendo escrever este tutorial para ajudar a comunidade da @morcegaofm.

Sempre acompanho os tweets  da galera que faz parte da comunidade e sempre tem alguém perguntando:

Tenho um iPhone, como faço para ouvir?

Tenho um Nokia N95, como faço para ouvir?

Por isso, com o apoio do Morcegão, escrevemos este artigo para ajudar os ouvintes da rádio.

Continuar lendo Como ouvir a Morcegão FM

Roteamento do Speed Touch 510 v5

Precisei ajudar um amigo a configurar sua conexão com o speedy para que seu video-game e dois micros compartilhassem a conexão de internet. Já haviamos configurado no passado, mas como esquecemos a senha do modem foi necessário resetar o modem e reconfigurá-lo.

Mesmo utilizando o Wizard do modem para configurar a conexão PPPoE o roteamento não funcionava, só funcionava com Bridge.

Após pesquisar muito na internet encontrei isso em um forum, onde o usuário danieltztz dava as instruções para resolver este problema, estou “multiplicando” a informação aqui, pois foi dificil encontrar esta solução e muitas vezes os links de forums são removidos ou movidos para outros lugares.
Continuar lendo Roteamento do Speed Touch 510 v5

Milestone: Atualizando Motorola Milestone para o Android 2.2

Já tenho o Motorola Milestone a uns 6 meses e estou bastante satisfeito, mas mesmo assim não resisto em dar uma “fuçada” sempre que possível.

Hoje vi uma mensagem do @rodrigostoledo no twitter:

@rodrigostoledo Atualize seu Motorola Milestone para o Android 2.2 (Froyo) hoje mesmo em PORTUGUÊS DO BRASIL.  http://bit.ly/d9RKGl  #Milestone  #Froyo

Como faz tempo que não posto nada, resolvi postar minha experiência e depois atualizar minha impressão sobre como ficou o pós-instalação durante os outros dias.

Continuar lendo Milestone: Atualizando Motorola Milestone para o Android 2.2

Wi-Fi no Droid (Motorola Milestone)

motorola-milestone-3 Ao migrar para o plano empresa da Vivo aproveitei para adquirir um Motorola Milestone com o Droid. Assim que o aparelho chegou começei a configurá-lo e como o 3G ainda não havia sido habilitado, decidi configurar o Wi-fi e não tive muito sucesso.

English readers: I put the solution to wi-fi issue at the end of this post.

Continuar lendo Wi-Fi no Droid (Motorola Milestone)

Wacom Graphire3: Ponteiro que treme

Há anos adquiri uma mesa digitalizadora Graphire3 da Wacom e ela sempre funcionou muito bem, até o dia em que troquei a placa mãe do meu computador e ela passou a apresentar um problema muito estranho, sempre que aproximava a caneta do tablet, o cursor do mouse ficava tremia pela tela.

Continuar lendo Wacom Graphire3: Ponteiro que treme