Android - Obter nome e versão do aplicativo
Autor: Marcio de Souza | Publicado: 2012-04-29T08:54:00-07:00



Olá Pessoal,

Hoje vou mostrar como obter informações simples mas muito úteis de seu aplicativo como, por exemplo, pegar automaticamente o nome do aplicativo, packagename, código da versão do aplicativo e o nome da versão.

Essas informações são úteis, por exemplo, em uma tela "Sobre" ou "Splash" que exiba a versão de seu sistema para o usuário, isso facilita bastante no processo de manutenção, quando você desenvolvedor precisa saber se o usuário atualizou o sistema.

Bem, como de costume vou apresentar todos os fontes necessário para este exemplo, e como todos já devem saber, todos os fontes seguem com comentários para facilitar no processo de&nbsp;aprendizagem.

Arquivo AndroidManifest.xml
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="br.com.EscolaDeAndroid.Informacoes"
    android:versionCode="1"
    android:versionName="Sanduiche de sorvete" &gt;

    &lt;uses-sdk android:minSdkVersion="7" /&gt;

    &lt;application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" &gt;
        &lt;activity
            android:name=".InformacoesActivity"
            android:label="@string/app_name" &gt;
            &lt;intent-filter&gt;
                &lt;action android:name="android.intent.action.MAIN" /&gt;

                &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
            &lt;/intent-filter&gt;
        &lt;/activity&gt;
    &lt;/application&gt;

&lt;/manifest&gt;


Arquivo main.xml
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" &gt;

    &lt;TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Nome do aplicativo:"
        android:background="@android:color/darker_gray"
        android:textAppearance="?android:attr/textAppearanceLarge" /&gt;

    &lt;TextView
        android:id="@+id/tvAppName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        /&gt;

    &lt;TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Nome do package:"
        android:background="@android:color/darker_gray"
        android:textAppearance="?android:attr/textAppearanceLarge" /&gt;
        
    &lt;TextView
        android:id="@+id/tvPackageName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        /&gt;

    &lt;TextView
        android:id="@+id/textView3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Código da versão:"
        android:background="@android:color/darker_gray"
        android:textAppearance="?android:attr/textAppearanceLarge" /&gt;
        
    &lt;TextView
        android:id="@+id/tvVersionCode"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        /&gt;

    &lt;TextView
        android:id="@+id/textView4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Nome da versão:"
        android:background="@android:color/darker_gray"
        android:textAppearance="?android:attr/textAppearanceLarge" /&gt;
    
    &lt;TextView
        android:id="@+id/tvVersionName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        /&gt;

&lt;/LinearLayout&gt;


Arquivo InformacoesActivity.java
package br.com.EscolaDeAndroid.Informacoes;

import android.app.Activity;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.widget.TextView;

public class InformacoesActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //classe responsável por pegar todas as informações contidas no
        //AndroidManifest.XML
        PackageInfo pinfo = null;
        
        
        //Instâncias dos objetos na tela (main.xml)
        TextView AppName = (TextView)findViewById(R.id.tvAppName);
        TextView PackageName = (TextView)findViewById(R.id.tvPackageName);
        TextView VersionCode = (TextView)findViewById(R.id.tvVersionCode);
        TextView VersionName = (TextView)findViewById(R.id.tvVersionName);
        
        
  try {
   pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
  } catch (NameNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

        //Carrega na tela as informações obtidas no arquivo AndroidManifest.xml
        AppName.setText(pinfo.applicationInfo.loadLabel(getPackageManager()).toString());
        PackageName.setText(pinfo.packageName);
        VersionCode.setText(String.valueOf(pinfo.versionCode));
        VersionName.setText(pinfo.versionName);
    }
}


Abaixo segue o resultado de nosso exemplo:


Activity


Por enquanto é isso pessoal, assim que eu tiver novas dicas postarei aqui no blog.

Obrigado e até mais...

Desenvolvi o jogo&nbsp;Circus Puzzle Free&nbsp;ele é um quebra-cabeça e está publicado no Android Market, agradeço a todos que baixarem, jogarem e comentarem.





Desenv com qualidade!