Mais uma leva de dicas legais para desenvolvedores Android. :)Modelo do aparelho:String PhoneModel = android.os.Build.MODEL;Versao do Android no aparelho:String AndroidVersion = android.os.Build.VERSION.RELEASE;Nome do produtor do aparelho:String manufacturer = android.os.Build.MANUFACTUREREnvio de SMS por Intent:Uri smsNumber = Uri.parse("sms:8188888888");Intent it = new Intent(Intent.ACTION_VIEW);it.setData(smsNumber);it.putExtra(Intent.EXTRA_TEXT, "Texto aqui");startActivity(it);Qual o versionName/versionCode descrito no AndroidManifest.xml:PackageInfo pInfo;try { pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); String versionName = pInfo.versionName; int versionCode = pInfo.versionCode;} catch (NameNotFoundException e) { e.printStackTrace();}Espero que ajude!Att, Pessoal, hoje irei deixar registrado uma coisa que muitos pensam ser complexo, mas de complexo nao tem nada, download de uma imagem. Gracas a santo Android que desenvolveu uma classe auxiliar, "BitmapFactory", responsavel pela criacao do Bitmap que corresponde a imagem, nao e trabalho nenhum fazer esta acao.Tudo que precisamos fazer o codigo abaixo em uma thread diferente da UI, ou seja, devemos utilizar o recurso de AsyncTask em nosso codigo fonte. Veremos como e simples mesclar esses dois recurso da linguagem Android.Para comecarmos precisamos declarar um ImageView que sera o responsavel por exibir na tela a imagem que sera baixada, uma String que sera responsavel por guardar o link da imagem que nos iremos baixar (coloquei uma qualquer) e a AsyncTask que sera responsavel por criar uma nova Thread para que o processamento de download da imagem nao interfira na thread da UI, ocasionando um travamento do aplicativo.Depois disso, tudo que precisamos fazer e chamar no nosso onCreate a nossa AsyncTask, nao esquecendo de inicializar nosso ImageView, ja que iremos modificar seu conteudo quando nosso resultado for diferente de 'null'.public class MainActivity extends Activity { private ImageView mImageView; private String IMG_URL = "SUA_URL.png"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mImageView = new ImageView(this); setContentView(mImageView); DownloadImage async = new DownloadImage(); async.execute(IMG_URL); } private class DownloadImage extends AsyncTask { @Override protected Bitmap doInBackground(String... params) { String url = params[0]; Bitmap bitmap = null; if (url != null) { try { final URL u = new URL(url); final URLConnection conn = u.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); final BufferedInputStream bis = new BufferedInputStream(is); bitmap = BitmapFactory.decodeStream(bis); bis.close(); } catch (Exception e) { e.printStackTrance(); } } return bitmap; } @Override protected void onPostExecute(Bitmap result) { if (result != null) { mImageView.setImageBitmap(result); } } }}Simples, nao e? =)Espero que ajude voces! =)Abraco. A linguagem do Google Android nos permite a manipulacao de componentes visuais de forma facil e pratica. Utilizando alguns conceitos de animacao, resources e fe, podemos criar um ProgressBar que fique executando de forma indeterminada, ou seja, sem fim.Geralmente, utilizamos estes ProgressBar's como forma de feedback para o usuario em operacoes que custam tempo, diminuindo o fator "estressante" do usuario com o aplicativo. Deste jeito, a experiencia para com o aplicativo se eleva.Irei exemplificar um ProgressBar, onde algum processando esta sendo feito em background, enquanto este ProgressBar e exibido. Para isto, utilizaremos de uma classe e dois arquivos XML, que serao nossos "shapes" onde sera feito uma animacao de transposicao das imagens.shape_white.xml: shape_orange.xml: Esses dois shapes serao utilizados para termos o efeito de animacao visivel ao usuario. A unica coisa que faremos sera a transposicao dessas duas imagens pelas ImageViews correspondentes do layout abaixo.layout.xml: Com