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 aprendizagem.
Arquivo AndroidManifest.xml
Arquivo main.xml
Arquivo InformacoesActivity.java
Abaixo segue o resultado de nosso exemplo:
Por enquanto é isso pessoal, assim que eu tiver novas dicas postarei aqui no blog.
Obrigado e até mais...
Desenvolvi o jogo Circus Puzzle Free ele é um quebra-cabeça e está publicado no Android Market, agradeço a todos que baixarem, jogarem e comentarem.
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 aprendizagem.
Arquivo AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.EscolaDeAndroid.Informacoes" android:versionCode="1" android:versionName="Sanduiche de sorvete" > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".InformacoesActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Arquivo main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <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" /> <TextView android:id="@+id/tvAppName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dp" /> <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" /> <TextView android:id="@+id/tvPackageName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dp" /> <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" /> <TextView android:id="@+id/tvVersionCode" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dp" /> <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" /> <TextView android:id="@+id/tvVersionName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dp" /> </LinearLayout>
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 Circus Puzzle Free ele é um quebra-cabeça e está publicado no Android Market, agradeço a todos que baixarem, jogarem e comentarem.
Desenv com qualidade!
2 comentários:
Muito obrigado, bem útil!
=)
Sucesso!
Boa tarde!
Gostei das informações, foi muito útil, mas notei que no catch você esta lançando a exceção, então caso não queira gerar um "crash" no app o ideal seria implementar algo tipo assim:
***___***
try {
pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
//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);
} catch (NameNotFoundException e) {
//Informa o problema
String erro = "Erro ao capturar a informação"
AppName.setText(erro);
PackageName.setText(erro);
VersionCode.setText(erro);
VersionName.setText(erro);
Log.e("TAG", erro, e);
}
***___***
Postar um comentário