sábado, novembro 05, 2011

Enviando email no Android

HI,

Estava precisando de uma rotina para enviar email dos erros que acontecem na tela de comunicação de um programa que fiz. Essa tela recebe um arquivo zipado com arquivos de atualização e também envia arquivos para a empresa. Além de implementar um tratamento de erro para mostrar na tela do usuário, também queria que esse registro fosse enviado para mim.

Achei duas maneiras de se enviar email, por intent e de forma automática. Por intent precisa da intervenção do usuário.

Estou usando essa rotina

Sending Emails without User Intervention (no Intents) in Android
http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_%28no_Intents%29_in_Android

achei essa rotina aqui

Sending Email in Android using JavaMail API without using the default android app(Builtin Email application)
http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without-using-the-default-android-ap

e por intent

How to send email from your application
http://www.helloandroid.com/tutorials/how-send-email-your-application


Fiquem na Paz!!!!

sexta-feira, novembro 04, 2011

Erro ao restaurar backup do Firebird

HI,

Mais uma aventura com o Firebird.

Recebi o backup de um cliente e acredito que a versão do banco dele seja menos atualizada que a minha. Estou usando o Firebird 2.5

Ao restaurar recebi essa mensagem quando tava em uma tabela:

IBE: Invalid token.
     Malformed string.

Pesquisando, achei a solução, graças a Deus e aqueles que disponibilizam seus conhecimentos e... valeu google.

Esse foi o comando que usei para conseguir restaurar o banco

gbak -r -p 8192 -create -v -user SYSDBA -password masterkey -FIX_FSS_METADATA WIN1252 -REP banco.fbk banco.gdb

links que achei

http://tech.groups.yahoo.com/group/firebird-support/message/110416
http://firebirdpt.wordpress.com/2008/06/28/backup-e-restore-com-gbak-em-linha-de-comando/
http://firebase.com.br/pipermail/lista_firebase.com.br/2010-February/066318.html


Fiquem na Paz!!!!

quinta-feira, outubro 20, 2011

Alterando a quebra de linha de um campo no Sqlite

HI,

Precisei trocar a quebra de linha de um campo aonde é armazenada uma observação. O problema é que o usuário pode digitar com quebra de linha e quando exporta o arquivo txt, o registro fica em mais de uma linha no arquivo.

Para solucionar, tive que dá um replace no select para trocar a quebra de linha por um espaço.

Achei a dica aqui

How to remove carriage returns in a text field in sqlite?
http://stackoverflow.com/questions/4642535/how-to-remove-carriage-returns-in-a-text-field-in-sqlite


Fiquem na paz!!!

Programa incompatível com Motorola Xoom no Android Market

HI,

Foi detectando um problema com o motorola xoom ao baixar um aplicativo que está no Android Market. Disse que era incompatível. Como instalando pelo dropbox não tinha problema nenhum, então fui a caça da solução.

Consegui resolver o problema com essas dicas

Application does not show up in Android Market for Motorola XOOM tablet
http://stackoverflow.com/questions/5116768/application-does-not-show-up-in-android-market-for-motorola-xoom-tablet


Fiquem Na Paz!!!!

quinta-feira, outubro 13, 2011

Detectando a mudança de orientação da tela no android

HI,

Precisei dessa rotina para saber quando a visualização está na horizontal, para aplicar um outro layout. É que nesse não dava para usar scroll.

Tou usando esse exemplo

How to detect orientation change in layout in Android?
http://stackoverflow.com/questions/5726657/how-to-detect-orientation-change-in-layout-in-android

Também achei esse
http://android-er.blogspot.com/2010/08/orientationeventlistener-detect.html

Fiquem na Paz!!!

segunda-feira, setembro 05, 2011

TextView com mais de uma linha no Android


HI,

Precisei fazer uma tela para o usuário informar uma observação e queria que tivesse mais de uma linha.

Consegui fazer usando partes desse código no layout do meu TextView



android:layout_width="wrap_content" android:layout_height="wrap_content"
android:lines="5" android:gravity="top|left" android:inputType="textMultiLine"
android:scrollHorizontally="false"
android:minWidth="10.0dip"
android:maxWidth="5.0dip"/>

que achei aqui

Android multi line editText (Text area)
http://stackoverflow.com/questions/2446544/android-multi-line-edittext-text-area


Fiquem na Paz!!!

quinta-feira, setembro 01, 2011

Manipulando arquivos com o Java

HI,

Precisei testar no android se um arquivo existia, e depois de ler o seu conteúdo, deletá-lo.

Usei as rotinas que achei aqui

Basic File Manipulation With Java
http://www.higherpass.com/java/Tutorials/Basic-File-Manipulation-With-Java/


Fiquem na Paz!!!

segunda-feira, agosto 29, 2011

Otimizando o processo de insert de muitos registros no Android

HI,

A rotina de importação que implementei usando o ContentValues... put... insert... ficou uma carroça puxada por lesmas. Vou ter que refazer tudo. Procurei por dicas no google e achei bons materiais. Ainda vou implementar.

Aconselho uma lida nesse testo

Database Speed Comparison
http://www.sqlite.org/speed.html

Achei dua maneiras, e as duas tem que ter controle de transação.

How to speed up multiple inserts in SQLite
http://www.tanguay.info/web2008/codeExample.php?id=728

Android: Using DatabaseUtils.InsertHelper for faster insertions into SQLite database
http://www.outofwhatbox.com/blog/2010/12/android-using-databaseutils-inserthelper-for-faster-insertions-into-sqlite-database/

Tem esse outro texto também sobre como otimizar

SQLite Optimization FAQ
http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html


Acredito que eu passe a utilizar esse código


try {
    mDb.beginTransaction();
    for (Value value : values) {
        ih.prepareForInsert();
        ih.bind(colIdx, value.getSomeValue());
        // ...
        ih.execute();
    }
    mDb.setTransactionSuccessful();
} finally {
    mDb.endTransaction();
}

editando

Achei esse código e estou utilizando ele. Passou de uns 15 minutos para menos de 1, hehehe.

Notes on Android SQLite bulk insert
http://sagistech.blogspot.com/2010/07/notes-on-android-sqlite-bukl-insert.html


Fiquem na Paz!!!

domingo, agosto 28, 2011

Função Split no Delphi

HI,

Estou utilizando essa função numa rotina para importar um arquivo texto delimitado.

Splitting a string in a string list
http://www.delphi3000.com/articles/article_2618.asp?SK=


Fiquem na Paz!!!

quarta-feira, agosto 24, 2011

Controle de transação no SQLite

HI,

Precisei colocar um controle de transação em uma rotina do sistema para Android que estou desenvolvendo.


db.beginTransaction();
try {
db.execSQL(...);
db.execSQL(...);
db.setTransactionSuccessful();
} finally {

db.endTransaction();
}


achei aqui essa dica
http://groups.google.com/group/android-developers/browse_thread/thread/ebe11a0fada35754

outro exemplo
http://www.helloandroid.com/tutorials/database-transactions

Fiquem na Paz!!!