Infohand – Notícias

Infohand - Notícias

Infohand – Notícias

Meu primeiro dispositivo android, foi um Galaxy 5, versão Froyo 2.2. Apesar dos poucos recursos de processamento ele tinha várias funções legais. Uma delas era um sistema de notícias que exibia as mais atuais, e eu podia organizar por meus assuntos de interesse.

O tempo passou, eu não tenho mais esse aparelho, mas nunca esqueci dessa funcionalidade. Foi pensando nela que desenvolvi o Infohand – Notícias. O objetivo deste app é exibir apenas o título e o resumo das últimas notícias em todo Brasil.
Ao abrir o aplicativo você terá diante de si uma lista dos principais meios de comunicação, Tecmundo, Info Exame, G1(Globo), R7.com, Globo Esporte e muito mais… Basta clicar no meio de comunicação desejado e você terá diante de si as últimas atualizações organizadas por categoria e data.
Com certeza esse aplicativo é essencial para os momentos em que você está distante da tv ou do seu PC. Ele pode ser útil numa fila de espera, trânsito engarrafado, durante viagens, passeios e até mesmo em casa quando você quiser dar uma relaxada na varanda sem abrir mão das últimas novidades.
Existe uma opção na versão gratuita deste aplicativo que permite a você abrir a matéria completa no site da fonte de notícias desejada. Na versão paga, além desta opção existe a possibilidade de compartilhar as notícias em suas redes sociais preferidas.
Infohand Plus - Notícias

Infohand Plus – Notícias

Observação

Este aplicativo é similar a televisão, ou seja, embora as notícias estejam sendo acessadas por meio dele, o produtor do aplicativo não é responsável por nenhuma delas. Assim como empresas de eletrodomésticos vendem o aparelho e não a programação dos canais, esse aplicativo em sua versão paga é apenas mais um meio de acesso como a tv. Todo material é de responsabilidade de seus editoriais.

** DISCLAIMER / TRANDEMARKS
Esse aplicativo não é um aplicativo oficial, nem afiliado, das mídias digitais aqui disponíveis. Logomarcas e Nomes utilizados são marcas exclusivas de seus respectivos proprietários, como segue lista abaixo:

TECMUNDO
INFO EXAME
G1
GLOBO ESPORTE
TERRA
R7.COM
FOLHA
O DIA
TRIBUNA DA BAHIA
A TRIBUNA
CORREIO DO BRASIL
GOVERNO FEDERAL

Versão Gratuita : Infohand – Notícias

Versão Paga : Infohand Plus

por Ecio Ferreira Postado em Android

Calculadora de Roupas

Calculadora de Roupas

Calculadora de Roupas

Você já ouviu falar na Lagoa do Abaeté? Fica em Itapuã um bairro famoso de Salvador/BA. Minhas duas avós por parte de mãe e pai já lavaram muita roupa nessa lagoa, claro que isso faz muito tempo, minha avó hoje com 86 anos nunca mais esteve por lá, também com tanta tecnologia lavar no baldinho, pra quê?

Ter uma máquina de lavar em casa era luxo, mas agente não tinha como ter um desse tipo. A primeira vez que tivemos uma máquina de lavar em casa, estava com 15 anos de idade. A empolgação era tanta que a máquina não durou muito, quebrou de tanta roupa que era colocada de vez. Nunca tinha ouvido falar sobre peso das roupas secas e etc…
Depois que ela quebrou já era, sem máquina até hoje, assim que puder espero poder presentar minha mãe com uma para ela descansar os braços um pouco.
Não moro mais com minha mãe, era ela que cuidava das minhas roupas em casa, não imaginava o quão é duro essa vida de lavar roupas, não aguentei a pressão e comprei um tanquinho. E o medo agora de ele quebrar também (risos).
Pensando nisso fiz esse aplicativo bem simples para me ajudar a somar o peso das roupas, essa tabela está disponível pela internet, mas você tem que ficar somando para obter o resultado final.
Com esse aplicativo, basta informar a quantidade e pronto, clicar em calcular e ter em mãos o valor total do peso de suas roupas secas. Assim seu tanquinho ou sua máquina de lavar vai durar muito mais tempo.
Link aqui

Calculadora de Compras

Calculadora de Compras

Calculadora de Compras

Lembro que quando era mais novo, tivemos alguns problemas em casa relacionados a família, não vou entrar em detalhes, mas ficou comigo a responsabilidade por fazer as compras no supermercado, eu ainda não trabalhava mas pegava o dinheiro com meu pai, eu deveria fazer isso toda semana e a grana era curta. Eu tinha que trazer o necessário para 7 dias e ver se dava para trazer uma merenda.

A única coisa que tinha ao meu alcance era papel e caneta para ir anotando os preços dos itens e depois somar para ver como estava ficando a parcial, às vezes utilizava uma calculadora, mas nunca deixei a caneta de lado, já pensou apagar a conta sem querer! E sem contar que era ruim estar no meio das contas e ter que pegar mais de um item, tinha que anotar, fazer as multiplicações e depois somar novamente.
Já estava ficando tão bom nisso que já cheguei a fazer as contas sem papel nem nada, só de olho já tinha uma parcial (risos).
Depois de tanto tempo e hoje trabalhando com desenvolvimento de software pensei em fazer um aplicativo que pudesse ajudar outras pessoas que também fazem suas contas no supermercado. Pode acreditar, eu ainda faço minhas contas, mas sem papel, nem caneta e sem calculadora.
Com este aplicativo, tudo que preciso fazer é digitar o valor do item, a quantidade desejada e pronto, ele faz toda a contabilidade para mim, sem contar que posso ir gravando as parciais quando quiser para evitar qualquer surpresa de perder os dados sem querer.
Link aqui

Abecedário – Infantil

Abecedário

Abecedário – Android

Quando era criança, tinha um abecedário em casa, mainha usava ele para me ensinar as letras, foi assim que eu aprendi a ler, vendo o A de avião, B de bola e etc…

Meu abecedário era uma folha quadrada tamanho médio, maior que um A4.
Nesse app eu relembro minha infância modernizando um abecedário de papel para versão digital, como por todas as letras na tela fica apertado então cada letra tem seu próprio espaço.
Projeto
O foco desse projeto está no trabalho com galerias de imagens utilizando o android. Eu passei muito rápido por essa parte em meus estudos, depois do infohand queria dar uma relaxada na mente antes de entrar na parte sobre geolocalização.
Diferencial
A única diferença desse abecedário para os outros está no fato de ele ser mais de um, por enquanto ele tem três abecedários mais um de vogais. Os produtos similares emitem sons ou tem música.
Observação
Só um abecedário de animais permite a adição de sons, quando eu fizer essa seção pensarei nisso, mas tipo assim, o que tenho hoje além do geral é o de frutas e o abecedário de chocolate, existe representação sonora para isso? Sei que não! kkkkkkkkk
Link aqui

Asteroide Super Attack

Asteroide Super Ataque – Free foi lançando para fornecer tanto aos aficionados por games shooter quanto aos amantes do Asteroide uma oportunidade ímpar de desfrutar do melhor de seu dispositivo. Imagine ter um controle real de sua nave? Na história do game uma gangue de alienígenas explodiram um grande planeta que fazia rota com nosso sistema solar…! A história completa está no game e você tem acesso a ela sempre que avançar entre as fases. Você pode escolher entre jogar no modo manual ou utilizando o acelerômetro do dispositivo. Sem dúvidas este é o melhor retrô Asteroide que pude conceber em minha mente.

Ele foi desenvolvido durante as madrugadas do mês de junho, como ainda* trabalho e estudo só me restaram essas horas para por em prática a programação do Game, programar não é divertido, a diversão está em ver as coisas acontecendo, os bugs sendo resolvidos, as regras de negócio sendo validadas e assim por diante, no caso da programação de um game não é diferente.

O Jogo foi todo feito utilizando o Unity 3D, e foi escrito com scripts em C# e JavaScript.

Quando pensei em criar um game não sabia o que queria fazer, mas tinha determinado a mim mesmo aprender a programar no Unity 3D, fui em busca de mais materiais na internet mesmo, em livrarias, no youtube e etc…  Quando peguei o jeito da coisa senti que poderia por nesse game tudo que sempre busquei em um jogo de asteroide.

A parte mais desafiadora da produção desse game foi a integração dele com o Admob (ferramente de monetização para app’s) que foi adquirida pela Google. Se você também desenvolve games e deseja integrá-lo ao Admob fiz um vídeo tutorial.

– Nostalgia Total;
– Retrogaming (que pode ser entendido como “Jogo retrô”) um atributo aos tempos passados do Asteroide!
– Sem limitações, a nave pode ir em qualquer direção;
– Você não precisa pagar mais nada para comprar os itens de defesa da nave!
– O jogo lhe dá a possibilidade de ter total domínio da situação. Aqui você sentirá o prazer verdadeiro de ser um shooter das galáxias.
– Um game que respeita sua inteligência e lha condições de montar sua própria estratégia para avançar entre as fases;
Se você é bom de mira e gosta de adrenalina ative o modo de jogo manual nas fases mais desafiadoras.

No menu do jogo existem 4 botoes:

Play – Iniciar um novo jogo ou continuar algum em andamento
Som – Desativar a trilha sonora do game
Ajuda – Informações sobre como jogar
Sair – Para encerrar o aplicativo

Observação: O Jogo possui save automático.

Ao clicar em Play você terá varias legendas na tela.
Do lado direito temos a legenda com o:
Life da Nave (Quando life da nave chega a zero, perde uma nave)
Life do Planeta
Contador de Asteroides perdidos
Total de Brutis (Moeda corrente local do Game)
Vidas (Quantidade de naves disponíveis)
Míssil – Destrói qualquer coisa a sua frente
Escudo – Proteção para nave
Armas – Tiro extra (A nave fica com dois tiros)
Do lado esquerdo temos 5 controles:
Pause – Parar o game e comprar mais itens.
Controle – Você pode escolher entre modo Manual ou Automático
Manual: Você controla a nave clicando sobre a tela
Automático: Basta movimentar seu dispositivo para os lados ou para frente que a nave acompanha seus movimentos.

Existe um controle de velocidade bem discreto no centro direito da tela. Não é fácil, mas é possível aumentar a velocidade de movimento da nave em modo automático. No modo manual a velocidade depende apenas de você.

Escudo: Botão para ativar o escudo de proteção:
Míssil: Botão de Lança Míssil;

*Data em que o post foi escrito

Como criar Webservice RESTful com RubyOnRails 3 / 4 + Oracle 10g (Legacy Schema)

O objetivo deste post é mostrar como criar um webservice utilizando o Rails conectado ao Banco de dados Oracle. Não é algo difícil mas exige um pouco de atenção aos detalhes. Nesse post não entrarei em detalhes sobre a história, razão ou motivos do porque as coisas são assim, isso a gente vê na faculdade ou pesquisando por aqui mesmo na web. Seguiremos a risca a missão do blog, ser um “Help”.

Não existe coisa mais irritante do que buscar ajuda pelos post’s da vida e só termos a resposta pela metade, ou então alguém falando que resolveu mas sem muitas explicações, com isso me refiro a parte prática. Creio que se você chegou até aqui com certeza já conhece um pouco sobre o Oracle e RubyOnRails.

Encontrar um tutorial que ensine como criar um webservice com Rails é fácil, difícil é encontrar um que mostre como fazer isso com um banco de dados legado (existente).

Onde nós estamos

Todo mundo que trabalha com Rails, sabe que ele funciona muito bem quando cria seu próprio banco de dados e suas tabelas, um exemplo disso é o comando ‘scaffold’, que como a palavra diz, serve como um andaime para a aplicação. Este comando gera os arquivos seguindo a arquitetura Rails, ou seja, ele cria um MVC, modelo, controlador, helper e as views. Veja abaixo:

Imagem

1
$>rails generate scaffold Contato nome:string telefone:string

O comando acima ira criar um MVC da tabela contato, já com todas as “telas” para criar, editar ou excluir contatos. Mas e se nós já temos um banco de dados? Aí as coisas mudam e o Rails já não é tão interessante quanto, porque nesse caso você terá que fazer tudo no braço e seguindo todo o protocolo que uma aplicação Rails exige. Isso será quase um parto se você realmente precisar chegar a tanto!

O Problema

Se nosso objetivo fosse criar um CRUD, então teríamos um problema, mas nosso foco é um webservice e para isso não é necessário nenhuma view.

Detalhes importantes

Para que esse processo funcione, será necessário:

Ruby 1.9.x
Rails 3.2.13

A gem ‘activerecord-oracle_enhanced-adapter’ não é compatível com o Rails 4. (Então se essa for a sua versão você não terá sucesso ao tentar criar um webservice com Rails e um Banco de Dados Oracle Legado.

OBS: Logo após ter escrito este post o pessoal que mantém o activerecord-oracle_enhanced-adapter liberou uma versão beta da gem compatível com Rails 4. Na seção abaixo, no item 11º altere a versão do activerecord-oracle_enhanced-adapter de … ‘~> 1.4.3‘  para … ‘~>1.5.0.beta1‘  (aspas simples)

Solução

1º Ter a última versão do Ruby 1.9.3 instalado em sua máquina (ou na máquina servidor)
2º fazer download instantclient-basic-win32-10.2.0.5.zip
3º Após o download do InstantClient fazer a extração onde achar melhor e copiar todos os *.dll para pasta bin do ruby “C:\Ruby193\bin”
4º Fazer download do Devkitvars e extrair todos os arquivos para dentro do diretório “C:\Ruby193\”
5º Acessar o diretório anterior via prompt de comando e executar o comando devkitvars: Exemplo C:\Ruby193> devkitvars
6º Se você estiver em uma rede com proxy deve fazer um SET do proxy antes de continuar. Ainda com o prompt aberto execute o comando SET HTTP_PROXY=http://usuario:senha@ip_proxy:porta Exemplo: C:\Ruby193>SET HTTP_PROXY=http://usuario:senha@ip_proxy:porta (substitua pelos valores reais do seu proxy)
7º Executar linha de comando: gem install rails -v 3.2.13 (aguardar, pois o processo pode demorar um pouco. Esse comando irá instalar a versão do Rails compatível com o adapter para Oracle. Exemplo C:\Ruby193> gem install rails -v 3.2.13
8º Para resolver problemas de acento com ruby e oracle execute o comando SQL no banco: select USERENV(‘LANGUAGE’) FROM DUAL;
Resultado do comando sql em minha máquina: BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1
Depois acrescente ele depois do =, ficando assim: set NLS_LANG=BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1
Execute esse comando no prompt da mesma forma que foi feito com o proxy.
9º Fazer a instalação das seguintes gem’s:

gem install bundler –pre
gem install rdoc
gem update –system (dar um update)
gem install ruby-oci8
gem install dbi
gem install ruby-plsql
gem install activerecord-oracle_enhanced-adapter

10º Agora pode criar sua api: C:\sites> rails new oracle_api -d=oracle
11º Acessar o diretorio oracle_api e editar o arquivo Gemfile:

Para Rails 3.2.x

# Use oracle as the database for Active Record
gem ‘ruby-oci8’, ‘~> 2.1.5’  (Editar essa linha pois já estará em seu arquivo)
gem ‘activerecord-oracle_enhanced-adapter’, ‘~> 1.4.3‘ (Acrescentar logo abaixo do ruby-oci8)

Para Rails 4

# Use oracle as the database for Active Record
gem ‘ruby-oci8’, ‘~> 2.1.0’  (Editar essa linha pois já estará em seu arquivo)
gem ‘activerecord-oracle_enhanced-adapter’, ‘~> 1.5.0.beta1‘ (Acrescentar logo abaixo do ruby-oci8)

12º Executar no console ainda dentro do diretório oracle_api: C:\sites\oracle_api> bundle install
13º Configurar o database.yml, pode deixar tudo como está, mexa apenas no development

development:
adapter: oracle_enhanced
database: //ip_servidor:1521/nome_sid ou seja //host:[port][/service name]
username: USUARIO
password: SENHA

14º Execute um rails server, se o Rails for carregado no navegador então deu tudo certo.

Finalmente (O pulo do gato)

O Segredo para tudo dar certo está em dois diretórios, models e controllers. Será necessário criar um arquivo dentro da pasta models, ele será o responsável pelo mapeamento da sua tabela. Mais uma coisa que deve ser esclarecida é a questão da nomenclatura. Nesse quesito de Banco Legado, pouco importa para o Rails o nome de suas tabelas, desde que seja seguido seus padrões. Vejamos:

Tabela AMOSTRAS:

amo_seq number(4)
amo_desc varchar2(100)
amo_ativo varchar2(1) ‘N’

Você precisará criar dois aquivos:

amostra.rb (..oracle_api\app\models)
amostras_controller.rb (..oracle_api\app\controllers)

Veja que o aquivo que será salvo na pasta models está no singular e o outro no plural com um _controller no final, essa padrão dever ser utilizado para qualquer projeto. Esse é um padrão do Rails ele faz isso de forma “automágica”, aqui temos que fazer na mão, pois estamos nos conectando a um banco existente.

Veja agora como ficaria o conteúdo do seu aquivo amostra.rb .:

class Amostra < ActiveRecord::Base
 self.table_name = 'amostras'
 self.primary_key = 'amo_seq'
before_save :increment
attr_accessible :amo_seq, :amo_desc, :amo_ativo
 def increment
  self[:amo_seq] = Amostra.select(:amo_seq).order('amo_seq desc').first.amo_seq.to_i + 1
 end
end

Com esse simples exemplo será possível a você mesmo avançar em seus estudos e desbravar todas as possibilidades relacionadas ao ActiveRecord, lembre-se de utilizar self. para setar o nome da tabela e o nome da chave primária, mais informações aqui:  ActiveRecord::ModelSchema::ClassMethods, before_save é um callback do Rails, são ganchos que permitem acionar algum tipo de lógica antes ou depois de uma alteração no objeto. Veja lista completa aqui: Active Record Callbacks. Sobre o attr_accessible veja esse post: http://simplesideias.com.br/recebendo-dados-do-usuario-attr_accessible-e-attr_protected e por fim o def increment é um método ruby que define como o incremento será feito, você pode ter quantos métodos quiser e chamá-los via callbacks.

Veja agora como ficaria o conteúdo do seu aquivo amostras_controller.rb .:
Veja que temos apenas dois métodos inicialmente, o index e o show.

class AmostrasController < ApplicationController
 # GET /amostras
 # GET /amostras.json
   def index
      @amostras = Amostra.all
      respond_to do |format|
         format.html #index.html.erb
         format.xml { render xml: @amostras}
         format.json { render json: @amostras}
     end
 end
 # GET /amostras/1
 # GET /amostras/1.json
   def show
       @amostra = Amostra.find(params[:id])
       respond_to do |format|
          format.html #show.html.erb
          format.xml { render xml: @amostra}
          format.json { render json: @amostra}
       end
 end
# GET /amostras/new
 def new
 end
# GET /amostras/1/edit
 def edit
 end
 # POST /amostras
 # POST /amostras.json
 def create
 end
 # PATCH/PUT /amostras/1
 # PATCH/PUT /amostras/1.json
 def update
 end
 # DELETE /amostras/1
 # DELETE /amostras/1.json
 def destroy
 end
end

Atenção ao nome das classes!

—————————————————

O nome do arquivo é amostra.rb, mas dentro dele o nome da classe é “class Amostra”.
O nome do arquivo é amostras_controller.rb, mas dentro dele o nome da classe é “class AmostrasController”, ou seja, sem underline e em camel case.

—————————————————

No método def index temos a variável @amostras e em def show @amostra no singular, isso tem lógica, no método show exibiremos uma amostra de cada vez.

Observe o método index:

@amostras = Amostra.all (Esse Amostra.all é o nome do seu arquivo amostra.rb que está na pasta models)
respond_to do |format|
  format.html #show.html.erb
  format.xml { render xml: @amostra}
  format.json { render json: @amostra}
end

No respond_to definimos como essas amostras serão renderizadas, como não temos nenhuma view foi colocado uma # logo após o format.html aí já ficou obvio né?

A única diferença do método index para o método show é que temos que setar um parâmetro para ele funcione.

Após iniciar sua aplicação com o comando rails server abra o navegador e digite:

http://localhost:3000/amostras.xml -> Lembra do @amostras, se você pensou que a palavra amostras está ali na url por causa dele está enganado, você coloca após a barra o nome do seu resource e a extensão desejada, ou seja, amostras.xml ou amostras.json. Para exibir apenas uma amostra faça assim: http://localhost:3000/amostras/1.xml, então é isso você põe o “nome_do_resource/id_da_amostra.extensão_desejada”.

Se você não configurar o resource nada disso será executado no navegador, estou falando do arquivo routes.rb:

O que conecta uma consulta de HTTP para uma URL específica para uma ação de um controlador ? Este é o trabalho do router Ruby on Rails, que correlaciona URLs com ações e garante que tudo vai para o lugar certo. Há um monte de coisas que você pode fazer com um roteador, mas pelo menos você precisa dizer a ele sobre recursos . Em Ruby on Rails, um recurso é muito menos de uma coisa, e muito mais de uma interface para uma coisa. O recurso não é a coisa em si, ou os dados que ele está acessando, mas é o conjunto de URLs que são mapeados para a coisa. http://ruby.about.com/od/rails3tutorial/ss/Router-Basics.htm

Você pode encontrar esse arquivo em ..oracle_api\config\routes.rb edite-o acrescentando a seguinte linha: “resources :amostras” sem as aspas ele ficará como abaixo:

OracleApi::Application.routes.draw do
   resources :amostras
 # Comentário foram suprimidos...

end

Mas como é que eu sei qual o nome do meu resource? Lembra do seu arquivo amostras_controller.rb então vem de lá, só que sem o _controller. Essa foi boa hein?

Conclusão

Você dever criar um model para cada tabela.
Você deve criar um _controller para cada model.
Você deve adicionar um resource no seu aquivo routes.rb para cada controller.

Se sua tabela tem underlines não tem problema, desde que você não os utilize “_”.

Exemplo:

tabela PESSOA_FISICA

Model = pessoafisica.rb
Controller = pessoafisicas_controller.rb

Nome da classe

Model = class PessoaFisica < ActiveRecord::Base
Controller = class PessoaFisicasController < ApplicationController

Em nosso exemplo esse webservice serviria apenas para expor os dados, pois não implementamos o POST, DELETE e o PUT, mas acredito que já deu para tirar você do sufoco de ter que começar do nada!

Carregar um combo box LIST ITEM Dinamicamente no Forms6i

Crie um gatilho do tipo PRÉ-FORM  e edite os dados abaixo para se ajustarem a sua tabela;

pre_FORM
É importante criar um campo Item_List ou Lista de Itens campo e definir o primeiro item da pop list, nas configurações do campo. Essas configurações são acessadas pela tecla de atalho F4.

propriedades_do_campo

— Carrega o combo box de Faixas Etárias dinamicamente

declare

list_id Item;
sql_query varchar2(500);
rg_id RecordGroup;
rg_name varchar2(15) := ‘faixa_etaria’;
errorcode number;

begin

rg_id := Find_Group(rg_name);

— Se o record group não existe, cria um

if Id_Null(rg_id) then sql_query := ‘select id_desc id_desc, id_seq from v_faixas_etarias where id_seq in(1,2)
union
select ”Todas as Faixas”,”0” from dual order by 2’;

rg_id := CREATE_GROUP_FROM_QUERY(rg_name, sql_query);
errorcode := POPULATE_GROUP(rg_id);

— Limpa o combobox e popula com
— os valores do select

list_id := FIND_ITEM(‘faixa_etaria’);
clear_list(list_id);
POPULATE_LIST(list_id, rg_id);

:faixa_etaria := ‘0’;

   end if;

end;

Vaja o campo tipo Lista de Item no canvas.

campo_em_tela

Navcity 1710 Wifi: Problema de Autenticação ou Não fica on!

location.href=”http://eciosf.com/blog/?p=72&#8243;

Sou afixionado por novos aprendizados, estou sempre estudando, ainda não escolhi em qual segmento pretendo seguir nessa área de desenvolvimento de software. Estudo qualquer linguagem de programação que me der na telha e tento fazer algo legal com ela, me aprofundar, ver quais são as limitações e por aí se vai… Perco noites fazendo meus próprios estudos em detrimento das matérias da faculdade, com certeza minha grade é muito mais divertida e interessante!

Na faculdade cursei a matéria Programação para Dispositivos Móveis, mas era tudo em Java, foi legal, mas eu queria mais, após desbravar o JME, senti-me obrigado a aprender programação para Android, algo que eu não veria em nível acadêmico. Os .JAR’s que consegui criar com o JME converti para APK’s do Android, já tinha comigo um Froyo 2.2 e fiz alguns testes neles. Após um ano de muitas formatações do aparelho via Odin senti que precisa avançar e decidi comprar meu primeiro tablet, para poder me atualizar e tentar criar algo bom para esses tipos de aparelhos, pensava em programar para Tablet’s com sistema Android.

Porque questões econômicas e sem fazer muitas perguntas comprei o tablet da Navcity modelo 1710. Esse bonitinho que pode ser visto no site da empresa Navcity aqui.

Sistema Operacional Android 4.0.3 

Tamanho da Tela 7″
Modelo NT-1710
Tipo de Tela Capacitiva
Memória 4GB
Tecnologia Wi-fi
Conexões Mini USB
Cores Preto
Processador Boxchip A13 1.2Ghz 
Especificações:
Especificações Processador: Boxchip A13 1.2Ghz
Resolução da Tela (pixels): 800×480 (16:9)
Sistema Operacional: Android 4.0 – Ice Cream Sandwich
Memória RAM: 512MB DDR3
Memória Interna: 4GB (Expansível até 32GB – MicroSD)
G-Sensor: Sim
Sistema Operacional Compatível: Windows XP/Vista/7, Linux2.4 ou Mac OS10.4 (ou acima)
Idiomas: Multilinguas (Português, Inglês, Espanhol, etc.)
Suporte Microsoft Office: Word e Excel
Internet 3G: Sim. Suporta 3G através de modem externo
Wi-Fi: 802.11b/g
E-Mail: Sim
Redes Sociais: Facebook, Twitter, Orkut, Linkedin, MSN, Skype, YouTube, etc.
Aplicativos Google: Gmail, Google Maps, Google Earth, Google Tradutor
Acesso à PlayStore: Sim. Acesso total à Loja de Aplicativos da Google
Câmera Frontal: Sim. 2.0MP por software
Gravador de vídeo: Sim
Formato de gravação: WAV
Foco Automático: Sim
Editor de Imagens: Sim
Multimídia Players
Entrada para fone de ouvido: P2 – 3.5mm
Músicas Formato: MP3,AAC,OGG,WAV,APE,FLAC,AMR,WMA
Vídeos: Formato: AVI,MPG,VOB,.MKV,FLV,TS/TP,H264,MPRC-4,RMVB,DIVX,MPEG-2
Fotos: Formato: JPEG,GIF,PNG,BMP
Leitor de Livros e Revistas: (E-Book) Formato: PDF
SNR: >80dB
Frequência de Resposta: 20Hz ~ 20KHz
Conectividade USB: Mini USB 2.0 de alta velocidade
Bateria: Tecnologia Li-Ion recarregável
Potência: 3,7V e 2400mAh
Duração: 120 horas em Stand-By, 3 horas em vídeo e Wi-Fi e 5 horas ouvindo música
Carregador Tensão de Entrada: Bi-Volt – 110-240 VAC
Origem do Item: Importado
Frequência (Hz): 50-60 Hz
Corrente de Entrada (A): 2A
Tensão de Saída (VDC): 5V
Corrente de Saída (A): 2A
Potência (W): 70W

***********************************************************************************

O Problema

***********************************************************************************

Tudo ia bem, funcionava direitinho, mas um dia sem explicação comecei a sentir dificuldades com o acesso ao meu Wi-Fi, ele estava conectado mais não acessava nada, apaguei minhas configurações da rede e tentei conectar novamente, foi quando começaram os problemas de autenticação, ficava buscando IP e nunca achava.

Pensei que a solução fosse atualizar minha versão do Android 4.0.3 Ice Cream Sandwich, a única coisa que consegui foi a mesma versão com a diferença de um ponto, baixei a ROM  tablet navcity nt-1710 by celso e o LiveSuit 1.07 ques estão na conta 4Shared do Celso.

Após seguir um tutorial como esse aqui abaixo que vi no site Tablet da China, o titulo do post é “Atualizando e melhorando com a Rom o c NT-1710”.

Passo a Passo:

Passo1-Baixe essa Rom (sistema do tablet navcity nt-1710) Download

Passo2-Baixe a live suite (instalador da rom) Download

Passo3-Apos ter baixado os 2 arquivos pegue o live suite ea Rom descompactei eles em seguida cria uma nova pasta e mova o arquivo extraído dentro dela

click nele. Apos isso procura uma bolinha roxa que esta escrito livesuit abra ele e vera que aparecera um quadro com as seguinte telas.Selecione respectivamente YES,Format,Next,Yes seleciona a Rom que baixo.

Passo4-Pegue o seu   tablet desligado navcity nt-1710 segure o Volume + e conecte ele segurando volume. Você vera que ira aparecer assitente de windows pedindo apara instalar os drivers instale eles. (Atenção: Primeiro aperte no botão de Volume + por uns 10 segundos e com ele ainda pressionado conecte o cabo USB)

Passo5-5-Você vera que ira aparecer duas telinhas do nada selecione Yes e Yes.Click no livesuit e vera que ira aparecer a taxa de % espere chegar ate 100% e aparecer uma telinha com umas esclamação click em OK.

Passo6-Pronto pode curti seu tablet navcity consertado.

 credito  hehk12345
OBS: Tudo que é dito nesse passo a passo é válido e serve para você formatar seu tablet sem problemas. Para mim funcionou certinho, mas o Wi-Fi ficou pior, nem conseguir ficar on ele ficava! Não achava nenhuma rede Wi-Fi e todas as configurações relacionadas a isso estavam desativadas.
Fui então verificar as configurações do Tablet e descobri que agora estava com a versão Android 4.0.4 Ice Cream Sandwich, iniciou-se assim minha saga em busca de uma solução, naveguei por todos os sites que vocês imaginarem, utilizei vários termos de busca, mas não encontrava nenhuma resposta.
OBS: Sobre o problema do Drive USB com exclamação no Gerenciador de Dispositivos, esqueça, no meu caso o problema estava na ROM, quando tentei com uma compatível com minha arquitetura deu certo.
Durante minhas buscas descobri que o Navcity 1710 é a mesma coisa que Allwinner A13, mas no site da Allwinner não existe nenhum tipo de página de downloads ou suporte para atualizações.
Mas com essa nova descoberta consegui mais duas ROM’s:
1 – ROM Universal Brazil Alwinner A13
2 – F1HD-4.1.1-20130319.2.0.6-A721.V4.2
A primeira ROM era a mesma coisa da anterior só que com outro nome, e a segunda nem consegui instalar via LiveSuit, dava sempre aquele problema do Drive USB com exclamação. OBS: A exclamação sempre aparece, mas quando a ROM é compatível não interfere em nada na formatação do Tablet.
Veja aqui, alguns lugares por onde passei em busca de respostas:
Foram dois dias entre esses e outros links, do Brasil, até decidir ir em busca de respostas fora daqui. Ao invés de utilizar a palavra Navcity, utilizei Allwinner A13, então refiz todas as minhas buscas anteriores em inglês e com o nome do aparelho diferente. OBS: O processador do Navcity 1710 é um A13.
Pesquisei no Google por:How to upgraded version 4.0.3 to 4.0.4 allwinner tablet?
Can not connect to Wifi / loosing connection straight away
Mid 7″ tablet wifi connection failure?
My allwinner a10 tablet wifi will not turn on?
F900 Allwinner a13 Android 4.0 9 inch tablet issues
E foi no fórum F900 Allwinner a13 Android 4.0 9 inch tablet issues  que encontrei a resposta.
“I got this tablet too, in chinabuye site name brand A139 (correct the link manually: http://www. chinabuye . com / a139-9-capacitive-screen-android-4-0-8gb-hdd-a13-1-0ghz-cortex-a8-tablet-pc).
I got the same issues, I tried to get support from website they refused to give me the manufacturer’s site/name, than I opened it and I saw realy an allwiner A13 processor but in mainboard had the name “F900 mainboard…”.
The main problem to me was the nonfunctional market. I did some searches in google and dicovered this tablet is sold in china in band name “MaPan” (search for maixin-china). There you can find a rom/firmware that is complete and better than original OEM rom.
This tablet informations you can find by name MaPan MX913 – The only difference is that this tablet specs shows the processor speed is a 1.2ghz (CPU+GPU+VPU+APU).
I burned the firmware you can find both here: MaPan MX913 Video – Cheapest 8GB 9″ Boxchip Allwinner A13 Cortex A8 android 4.0 OS capacitive touch screen tablet PC with WIFI 3G or here: Android Program/Software Download, Download MaiPad Software, Input Method Software, Working Software, Chating Software etc PC Software.
After everything worked how it should, except one esthetic think, the boot logo changed from that android image to MaPan logo, but after shows the bootanimation screen and after starts.
After I’ll put a link to a “how to” burn firmwares in allwinner tablets, using the Live Suite. “
Eu não falo inglês, mas mesmo sem utilizar o Google tradutor deu para entender que esse cara tinha encontrado um site da China com todas as Firmwares possíveis para tablets Allwiner, o nosso Navcity!
Fui então ao site da Maixin China e lá estavam todos os Firmwares, claro que achei um compativel com o meu Navcity 1710 e o melhor de tudo é que lá havia uma ROM com a versão 4.1 Jelly Bean do Android, perfeito. Fiz o download, segui o mesmo tutorial do site Tablet da China, mas escolhi minha nova ROM e agora está tudo uma beleza. O Wi-fi funciona normalmente como se nada estivesse acontecido.

Se você tem um Navcity 1710 ou se seu processador for Allwinner A13, busque no site a seção onde está escrito MaPan MX713 DC Firmware / Update Software(Allwinner A13 CPU) e baixe por sua conta e risco a última ROM para seu aparelho:

  • MaPan MX713 DC Jelly bean 4.1 os Root Software 2013.6.18.rar (size: 608 MB) Download
  • Mirror 1 MaPan MX713 DC Jelly bean 4.1 os Root Software 2013.6.18.rar (size: 608 MB)  Link Alternativo

Agora quando meu tablet inicia ele exibe o logotipo da MaPan depois a animação normal do Android Jelly Bean for MaPan.

O visual está fantástico e com Wi-Fi que é o melhor de tudo!

Lenox, Navcity e Genesis é tudo a mesma coisa! Ou eles utilizam o processador A10 ou A13, o A é de Allwinner o fabricante dessa marca de processadores! Outra coisa, qualquer pessoa que compre um tablet com a versão 4.0.3 do Androide corre o risco de ter os mesmos problemas que uma  tem com um Navcity que vem com a mesma versão do androide de fábrica! Eu postei um link no meu blog do site da china que possui atualizações do androide para qualquer tipo de tablet que usa processadores da Allwinner.

Aqui está o link para você procurar pela ROM compatível com o processador do seu tablet, acesse: http://www.maixin-china.com/software-download.asp

Lista de Processadores da Allwinner que podem se beneficiar das atualizações mantidas pela empresa Maixin-China:

Mapan Software MX88T DC (10 polegadas, Cortex A9, 1GB de RAM, construído em 8GB, 4.1os Android, Dual câmera Mapan)
MaiPad MX710 (A20 CPU Dual-core Allwinner) Root Software Firmware
Mapan F10B (Cortex A8 Flytouch 6 e Flytouch 8) Software
MaPan MX713 DC Firmware / Update Software(Allwinner A13 CPU)
MaPan MX710B 3G (Old Model ; Single Sim ; Allwinner A10 CPU ) Root Firmware / Update Software

Quer que eu seja mais claro? Ok.

Tablet Lenoxx Tb100

Versão 4.0.3
Processador A10 Cortex A8 1.2GHZ

Tablet Lenoxx Tb50

CPU Boxchip A13

Tablet Lenoxx Tb51

Versão 4.0.3
Processador Boxchip A13/ 1.2 Ghz

Tablet Amvox Toks

Processador All winner A13

Tablet Aoc Breeze Mw0922Br

Processador 1,2 GHz ARM Cortex A8 Core (RK2918)

Tablet Cce Tr91

Hardware Cortex A8 1.2Ghz 4GB ROM 512MB RAM

Tablet Genesis GT-7240

CPU: Cortex A9 1.2Ghz

Bom, acho que não preciso de mais exemplos certo? Descubra qual é o processador do seu aparelho, procure pela versão mais recente no site da Maixin e manda ver! Claro, a responsabilidade é toda sua. Eu fiz a troca da minha ROM e não tenho do que reclamar! Ahh sem falar que no site da Navcity não existe nenhuma seção para dowloads de ROM atualizadas para nosso Navcity.

Vejam nesse link o Tablet MaPan = Allwinner A13 = Navcity 1710 sendo vendido online. Ele vem com mais aplicativos que o Navcity vendido no Brasil. Bem, o meu tablet Navcity 1710 agora está com esses aplicativos! rsrsrsrsrs

http://www.maixin-china.com/view.asp?ProID=854

***********************************************************************************

Vídeo – Como Formatar Tablet Navcity 1710

***********************************************************************************

Solução – Error building Player: Win32Exception… apkbuilder.bat

Faz pouco tempo que descobri o Unity 3D, busquei tanto por materiais gratuitos na internet quanto pelos pagos, livros, cursos, apostilas, fóruns e vídeos. As coisas estavam indo bem, até eu decidir desenvolver aplicativos para plataforma androide. Assisti a todos os vídeos disponíveis no youtube relacionados a como configurar a ferramenta para trabalhar com o SDK Androide e tudo parecia muito fácil.

Eu consegui instalar o Unity 3D e configurar o Android SDK para compilar o “qualquercoisa.apk”, e funcionou beleza, o arquivo “qualquercoisa.apk” foi gerado e  eu consegui instalar ele no meu celular, mas não conseguia executá-lo, quando tentava ver o game gerado no Unity 3D a tela do meu aparelho celular ficava preta e depois o game fechava. Depois de algumas tentativas decidi analisar minha estrutura com a que vi nos tutoriais.

OBS: esse erro apareceu após copiar o arquivo aapt.exe da pasta *AndroidSDK\platforms\ para *AndroidSDK\platforms\android-17 na tentativa de resolver um erro anterior a ausência do apkbuilder.bat

*AndroidSDK é um nome ficitício para o local onde estão os arquivos do Android SDK baixados do site http://developer.android.com/sdk/index.html

Minha estrutura

Windows 7 Home Basic
Sistema Operacional 64bits
Unity 3D – versão 4.1.5
*Configuração PlayerSettings para Androide no Unity 3D -> Other Settings -> Configuration -> Device Filter: AMRv7 only
Androide SDK Revision 22.0.1 (May 2013)
Samsung Galaxy 5 – Froyo 2.2.2

Estrutura das Vídeo Aulas

Windows 7 Ultimate
Sistema Operacional 32bits
Unity 3D – versão 3.5.2
*Configuração PlayerSettings para Androide no Unity 3D -> Other Settings -> Configuration -> Device Filter: AMRv6 with VFP
Androide Revision 21.1 (February 2013)
Samsung Galaxy 5 – Froyo 2.2.2

* Atenção a opção Device Filter em PlayerSettings, por ser este um ponto crítico na configuração.

Não tive problemas para instalar o Java e configurar as variáveis de ambiente, nem tão pouco em baixar o Unity 3D e o SDK Androide, a dificuldade era gerar um arquivo.apk que funcionasse. Depois de varrer o google descobri que minha versão do Unity 3D só possuia o Device Filter AMRv7 e só gerava arquivos.apk para aparelhos mais potentes como os tablets.

AMRv7 disponível em todas as versões do Unity 3D com suporte a Androide
AMRv6 with VFP disponível apenas nas versões 3.x.x do Unity 3D com suporte a Androide

Decidi baixar a mesma versão do Unity 3D 3.5.2 vista no vídeo e pra minha alegria lá estavam duas opções para Device Filter a AMRv7 e AMRv6 with VFP.

print003

Depois de alterar minha opção do Device Filter para AMRv6 with VFP que é compatível com meu celular Galaxy Froyo 2.2.2 e configurar a pasta onde estavam os arquivos SDK Androide novamente … (Edit -> Preferences -> External Tools ->  Android SDK Location o erro: Error building Player: Win32Exception: ApplicationName=’C:/Program Files (x86)/Android/android-sdk\tools\apkbuilder.bat’,… apareceu!

Descobri que o problema estava no fato de apkbuilder.bat ter sido removido do Android SDK Revision 22.0.1 (May 2013), até aí foi fácil, mas qual seria a solução? Perdi duas noites tentando encontrar uma solução, fiz uma pesquisa brutal no google sobre o assunto, mas nada que me desse resultados, a não ser o fato de que eu precisava desse arquivo, o apkbuilder.bat, mas como encontrá-lo?

Achei até um link com o apkbuilder.bat e um apkbuilder.jar, mas mesmo assim não funcionou. Me enganei achando que a solução estava apenas em ter uma versão 3.x.x do Unity 3D eu precisaria também ter uma versão anterior do Android SDK.

A versão do SDK do vídeo era SDK Tools, Revision 21.1 (February 2013), mas no site http://developer.android.com/sdk/index.html não existe nenhum link onde seja possível baixar versões anteriores do SDK. Após mais algumas pesquisas descobri que essas versões anteriores estão no mesmo local de onde o SDK faz seus downloads e atualizações, no repositório, mas não existe uma página bonitinha para isso, ou você sabe o endereço certo ou vai “morrer na praia”.

Descobri o endereço: http://ssl.google.com/android/repository/tools_r20-windows.zip  e foi por aqui que consegui fazer o download de uma versão anterior a SDK Tools, Revision 22.0.1 (May 2013).

A única coisa que vem nesse arquivo zipado é a pasta tools, ao extrair os aquivos, puder ver para minha alegria que lá estava o aquivo apkbuilder.bat.

Passos para o sucesso:

Exclua os arquivos do SDK existente ou desinstale caso tenha utilizado o instalador do SDK para windows.
Criei uma pasta C:\androidsdkx86 e extraí os aquivos de tools_r20-windows.zip  para dentro dela.
Executei o arquivo C:\androidsdkx86\tools\android.bat e foi exibida a tela de “instalação” do SDK. (na verdade ele faz o download dos arquivos necessários para desenvolvimento nessa plataforma).
Tela Instalação do SDK

Instalei apenas os arquivos visto na imagem e toda a pasta Extras. Veja que o arquivo apkbuilder.bat é deletado automaticamente durante o update vista na segunda linha da imagem. Não se preocupe essa ainda é a Rev. 20 mas com as atualizações da Rev.22.

Quando o SDK terminar de baixar e instalar todos os pacotes necessários, extraia novamente os aquivos de tools_r20-windows.zip  para dentro de C:\androidsdkx86\. Se aparecer alguma mensagem de deseja substituir confirme e pronto. Veja que o arquivo apkbuilder.bat voltou novamente.

Dessa forma será possível compilar seu game e gerar o apk para ser instalado em qualquer aparelho androide com processadores AMRv6 ou AMRv7.

por Ecio Ferreira Postado em Unity 3D

Solução para warning: ‘includeantruntime’ was not set – Ant

Para compilar classes “java” no Ant, basta adicionar um target apontando para o diretório onde estão os arquivos *.java no arquivo build.xml:

<!– Compilar a fonte java do projeto –>
<target name=”compile” depends=”prepare” description=”Compilar todas as classes Java”>
<javac srcdir=”${source.root}”  destdir=”${class.root}”  debug=”on”  optimize=”off”  deprecation=”on” >
<classpath refid=”project.class.path”/>
</javac>
</target>

Ao tentar executar o target compile com o comando C:\dominandoHibernate>ant compile é exibida mensagem de erro:

compile:
[javac] C:\dominandoHibernate\build.xml:98: warning: ‘includeantruntime’ was
not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

Solução

Basta adicionar o atributo includeantruntime=”false” ao javac, veja como deve ser,

<!– Compilar a fonte java do projeto –>
<target name=”compile” depends=”prepare” description=”Compilar todas as classes Java”>
<javac srcdir=”${source.root}” destdir=”${class.root}” debug=”on” optimize=”off” deprecation=”on” includeantruntime=”false”>
<classpath refid=”project.class.path”/>
</javac>
</target>

Ao executar C:\dominandoHibernate>ant compile novamente todos os arquivos *.java são compilados com sucesso e os novos arquivos *.class são copiados para pasta C:\dominandoHibernate\classes !

C:\dominandoHibernate>ant compile
Buildfile: C:\dominandoHibernate\build.xml

prepare:

compile:

BUILD SUCCESSFUL
Total time: 1 second