300x250 AD TOP

Blogger news

AD (728x90)

Tecnologia do Blogger.

Colaboradores

Seguidores

Postagens populares

Mostrando postagens com marcador Android. Mostrar todas as postagens
Mostrando postagens com marcador Android. Mostrar todas as postagens
Tagged under: , ,

Como conectar o Bitbucket com o Android Studio


O Android Studio pode até trabalhar por padrão com o repositório web  GitHub, mas não com não acontece o mesmo com o BitBucket, e qual a maior vantagem de trabalhar com o BitBucket? Simples e claro, você pode deixar o seu projeto privado :D, sem precisar pagar nada por isso. Então vamos lá.
Há uma série de tutoriais na Internet que descrevem formas de trabalhar com um repositório BitBucket/Github em um projeto Android Studio, principalmente usando o Terminal Linux.
Contudo este tutorial não é sobre como trabalhar com o Git no  terminal, com todos aqueles  push, pull, commit, etc. Além do mais, uma alternativa é fazer tudo isso a partir dos menu VCS dentro do Android Studio.

Passo 1: Primeiro, você precisa baixar o BitBucket Plugin:
Não precisa descompactar o arquivo!!

Passo 2: Nessa etapa, vamos instalar o plug-in. Se o Android Studio já estiver aberto com um de seus projetos, vá para o botão de File->Settings na barra de ferramentas e escolha Plugins.
O mesmo menu também pode ser alcançado a partir da tela de boas vindas:

 Screenshot from 2015-05-09 14:54:49
Passo 3: Escolha a opção <Install plugin from disk ..> e então navegue até o local onde você baixou o arquivo .zip no passo 1, em seguida aperte <OK>

http://i2.wp.com/www.goprogramming.space/wp-content/uploads/2015/05/Screenshot-from-2015-05-09-151309.png

Passo 4: Reinicie  o Android Studio e o Plugin está pronto para usar.
Inicie um novo projeto Android Studio ou use o que você já tem aberto.
O Projeto precisará ser ativado para usar VCS. O processo de ativação consiste em escolher o seguinte item no menu, VCS->Enable Version Control Intregration...

Screenshot from 2015-05-09 15:13:09

Uma coisa legal é que o BitBucket é baseado no Git, assim como o Github, de tal forma que você poderá aproveitar todos os comandos que você aprendeu (push, pull, commit, branch, etc. ) a utilizar no Github de forma análoga no BitBucket.
Screenshot from 2015-05-09 15:13:43

Por isso, como você pode ver na imagem, essa conexão é semelhante à conexão com um repositório GitHub.

Screenshot from 2015-05-09 15:14:42

Por fim a minha funcionalidade Share Project não funcionou em meus testes. Vale a pena tentar. Talvez ele funciona com outro sistema operacional ou uma versão atualizada. Foi testado no Ubuntu 14.04 e no Mint 17

Screenshot from 2015-05-09 15:17:28

O que eu fiz em vez disso foi:
  • Criar repositório na Web no BitBucket, com exatamente o mesmo nome do projeto.

Screenshot from 2015-05-09 15:41:14
  • Pegar o mini tutorial que aparece no Bitbucket, representado a baixo:
Screenshot from 2015-05-09 15:44:52
  • E preencher o HTTP adress do Bitbucket

Screenshot from 2015-05-09 15:45:28

Depois disso, estava habilitado a utilizar o commit, pull e push. O repositório on-line não tem nenhum arquivos depois de criar. Assim, o commi e o push, levam todos os arquivos que tenho no Android Studio.
Screenshot from 2015-05-09 15:45:57

Assim acessando o site do Bitbucket, após efetuar o login é possível visualizar os arquivos do projeto que foi colocado.


Screenshot from 2015-05-09 15:48:35
Também é importante, a partir da tela de boas-vindas do Android Studio testar a opção <“Check out project from Version Control> e escolha BitBucket.

Screenshot from 2015-05-09 15:57:47


Nessa tela abaixo você deve escolher o projeto que você deseja importar.

Screenshot from 2015-05-09 15:58:33

Depois que você escolher o projeto, é esperado que ele seja aberto. Isso pode demorar dependo da sua internet e da quantidade de dependências que o Android Studio terá que baixar para fazer com que o seu projeto funcione corretamente, É isso aí.
Esse tutorial básico, é em tese uma tradução do link abaixo, dependendo do seu ponto de vista ele pode não ser, por fim espero que ele seja útil.

Referencias
http://www.goprogramming.space/connecting-android-studio-project-with-bitbucket/
Tagged under:

Funcionalidades de uma Intent – Parte III


Nos posts anteriores desta série aprendemos sobre o conceito de Intent, e as duas principais formas de invocar uma Activity através de uma Intent. Agora nessa post irei mostrar para vocês uma outra funcionalidade de uma Intent, que são Objetos de uma Intent, estas que iram ajudar até a entender melhor o funcionamento do AndroidManifest.xml e suas Activities.

Objetos de uma Intent

Uma Intent pode armazenar diversos tipos de informações, como: uma Action (ação), Data (dados), Category (categoria) e Extras (informações extras). Estas informações armazenadas em uma Intent são recebidas pelos componentes do Android que têm interesse em recebê-las. 
Como exemplo, temos uma Intent que solicita ao Android a realização de uma chamada telefônica. Para que isto seja possível, esta Intent deve declarar em seu conteúdo o nome da Action de Telefonia e o número para o qual deseja realizar a chamada.

Veja no trecho de código abaixo como é simples realizar esta tarefa no Android:


/** 
* Declara, no construtor da Intent, a Action que será chamada. 
* Em nosso caso, a Action de chamadas telefônicas. 
*/ 
Intent i = new Intent(Intent.ACTION_CALL); 
/**
*Define o conteúdo a ser passado para a Action 
* de chamadas telefônicas. Em nosso caso, o número 
* de telefone para o qual desejamos ligar. 
*/ 
i.setData(Uri.parse("tel:8111-1111")); 
  
// Inicia a Action definida na Intent 
startActivity(i);
No trecho de código acima, a Intent declara que deseja chamar a Action que responde pelo nome Intent.ACTION_CALL. Nesta Intent definimos também o dado que queremos passar para esta Action e, em nosso caso, passamos o número de telefone para o qual desejamos realizar a chamada. Ao chamar o método startActivity(), passando a Intent como parâmetro, o Android irá receber a solicitação e irá chamar a Action que tem o interesse de receber este tipo de informação, no caso, a Action ACTION_CALL.
Além da Action (como exemplo, a que usamos no trecho de código acima para chamar a Action de telefonia do Android) e do Data (como exemplo, o número de telefone que passamos para a Action de telefonia através do método setData()), existem outros tipos de objetos que podemos armazenar nas Intents.

Action

Uma Action é uma String passada como parâmetro para o construtor de uma Intent informando a ação que queremos executar no Android. Essa String deve ser única em todo o sistema, portanto, para que não haja conflito entre nomes de Actions diferentes, é aconselhável o uso da mesma convenção de nomes de pacotes do Java para nomear uma Action.

Nota
Lembre-se que no exemplo anterior, onde usamos uma Intent para realizar uma chamada telefônica para um número, usamos uma Action chamada ACTION_CALL nativa do Android.

Para uma Action de cadastro de pessoas, por exemplo, poderíamos usar o seguinte nome: 
 
br.com.empresa.projeto.action.CADASTRO_PESSOA.  
O trecho de código abaixo mostra como seria a chamada para esta Action, no Android: 

Intent i = new Intent("br.com.empresa.projeto.action.CADASTRO_PESSOA"); 
startActivity(i); 
Veja, na tabela abaixo, algumas das Actions nativas do Android.


Constante Tipo de componente Ação
ACTION_CALL Activity Inicia o aplicativo de telefonia
ACTION_EDIT Activity Exibe tela para edição de um determinado dado
ACTION_MAIN


Activity Abre a Activity inicial de um aplicativo
ACTION_SYNC Activity Sincroniza os dados do dispositivo com os dados do servidor
ACTION_BATTERY_LOW Broadcast Receiver Aviso de bateria fraca
ACTION_HEADSET_PLUG Broadcast Receiver Aviso de handset plugado ou desplugado do dispositivo
ACTION_SCREEN_ON Broadcast Receiver Aviso de tela acesa

A tabela acima mostra apenas algumas das Actions mapeadas na classe Intent. Existem diversas outras Actions nativas e você pode ver a lista completa na documentação da classe Intent, no site do desenvolvedor Android, através do link:

Nota
Uma Action nativa do Android muito importante que você deve memorizar é a ACTION_MAIN. Esta Action é responsável por definir a Activity inicial de um aplicativo, ou seja, sempre que você definir esta Action no Intent Filter de uma Activity ela será a Activity principal do aplicativo.

Data

O Data é uma informação a mais que podemos definir na Intent para especificar melhor qual componente será associado à nossa Intent. No Data podemos definir dois tipos de informação: URI e data type. Veja novamente o exemplo de uma Intent que utilizamos anteriormente para realizar uma chamada telefônica: 
Intent i = new Intent(Intent.ACTION_CALL); 
i.setData(Uri.parse("tel:8111-1111")); 
startActivity(i); 
No exemplo, ao declarar a ACTION_CALL para realizar chamadas telefônicas, usamos justamente uma URI para informar à esta Action o número de telefone para o qual desejamos chamar.
A URI é definido na Intent através do método setData(). No trecho de código acima, usamos a seguinte URI: "tel:8111-1111"

A URI acima irá pedir para a ACTION_CALL discar para o número 8111-1111.
Cada Action possui um formato específico de URI, utilizado para executar ações de acordo com os dados informados. Um outro exemplo é quando em nosso aplicativo queremos que, quando o usuário clicar em um botão, o Browser do Android seja aberto em uma página específica da Web. Para isto existe uma action chamada ACTION_VIEW que, quando informamos em sua URI o endereço de um site, o Browser será invocado e direcionado para o endereço do site informado.

Veja um exemplo no trecho de código abaixo: 
 
Intent i = new Intent(Intent.ACTION_VIEW); 
i.setData(Uri.parse("http://www.google.com.br")); 

No trecho de código acima informamos para a ACTION_VIEW a URI “http://www.google.com.br” informando que desejamos que o Browser abra a página Web do Google.
Perceba que enquanto a Action determina a ação a ser executada, a URI determina como deve ser feito. A ACTION_VIEW, por exemplo, pode ser usada para diversos fins, dependendo da URI recebida, como por exemplo, abrir uma imagem no aplicativo de visualização de imagens do Android, abrir um arquivo de áudio do aplicativo de Sons, mostrar os contatos armazenados o aplicativo de Contatos do Android, etc.

Veja o exemplo de uma URI passada para a ACTION_VIEW para mostrar os contatos armazenados no Android: 
 
Uri uri = Uri.parse("content://contacts/people/"); 
Intent i = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(i); 
 
Além do URI, outra informação que podemos passar no Data de uma Intent é o Data Type. O Data type especifica o Mime Type do arquivo definido na URI e é definido através do método setType() da Intent. Imagine, por exemplo, que através de uma Intent você queira chamar um componente do Android para abrir um arquivo de imagem com a extensão .JPG. Para isto, no URI da Intent você pode especificar o caminho deste arquivo e no Data Type especificar o tipo deste arquivo para
que o Android decida qual o melhor componente para abri-lo. Veja o exemplo: 
 
Intent i = new Intent(Intent.ACTION_VIEW); 
i.setData(Uri.parse("/caminho/do/arquivo.jpg")); 
i.setType("image/jpeg"); 
Category

Uma Category (categoria) é uma String que passamos para a Intent informando qual o componente mais adequado para executar a ação solicitada pela Intent. O uso da Category é aconselhável para especificar mais detalhadamente o componente que melhor atenderia uma determinada solicitação. Veja abaixo o exemplo da definição de uma Category em uma Intent: 
 
Intent i = new Intent("br.com.nasemanadaprova.projeto.action.CADASTRO_PESSOA"); 
i.addCategory("br.com.nasemanadaprova.projeto.category.PESSOA_JURIDICA"); 

No exemplo acima, definimos a Action no construtor da Intent e, logo em seguida, definimos a Category através do método addCategory() da Intent.
Perceba que nossa Intent chama uma Action responsável pelo cadastro de pessoas, chamada CADASTRO_PESSOA.

Imagine que esta Action abra uma tela com o formulário para preenchimento dos dados da pessoa que queremos cadastrar. Para tornar as coisas mais específicas, informamos na Category que queremos cadastrar uma pessoa jurídica e, desta forma, podemos ter Activities distintas para cadastro de pessoa física e jurídica, definindo telas distintas com campos específicos de cada caso.

Nota
Ao contrário da Action, é possível especificar mais de uma Category em uma Intent. Para especificar mais de uma Category, basta chamar novamente o método addCategory() informando as demais Categories desejadas.

Extras

Extras são informações adicionais que desejamos transmitir para o componente que irá executar a ação definida na Intent.
Podemos passar qualquer tipo de Objeto do Java como informação Extra. Estas informações são definidas em pares de CHAVE / VALOR. Veja o exemplo: 

 
/** 
* Define a Action de edição das informações do cadastro 
* de uma pessoa. 
*/ 
Intent i = new Intent("br.com.nasemanadaprova.projeto.action.CADASTRO_PESSOA "); 
/** 
* Informamos o ID da pessoa cadastrada 
* que queremos editar suas informações. 
* Neste caso, estamos informando o ID 10. 
*/ 
i.putExtra("id", 10L); 

No exemplo acima nós definimos na Intent que queremos chamar a Action CADASTRO_PESSOA responsável pela edição das informações do cadastro de uma pessoa. Logo em seguida, através do método putExtras() .

Para ler as informações Extras através do componente que as recebeu, basta usar o método getExtras() da Intent. Veja o exemplo no trecho de código abaixo: 
 
Bundle b = getIntent().getExtras(); 
long id = b.getLong("id"); 

Você deve ter notado que esse post ficou grande, comparado aos seus anteriores, fiz isso porque os assuntos Action, Data, Category e Extras pertensem ao conteúdo Objetos de uma Intent então para não subdividir esse item resolvi estender um pouco mais o post para que este ficasse completo.

Qualquer sugestão ou duvida pode deixar um comentário.
Tagged under:

Principais formas de invocar uma Activity – Parte II


Invocando uma Activity através de uma Intent

Como vimos no post anterior, podemos usar uma Intent para chamar uma determinada Activity em nosso aplicativo. Contudo o objetivo desse post um pouco mais sobre o assunto e mostrar duas formas para invocar uma Activity: explicita e implícita.
Invocar uma Intent na forma Implícita

Então imagine que temos uma Activity em nosso aplicativo chamada de Activity1 e queremos que esta invoque uma segunda Activity, chamada Activity2, conforme mostra a figura abaixo. Para que isto seja possível, basta definirmos uma Intent na Activity1 dizendo ao Android que temos a intenção de abrir uma outra Activity, em nosso caso, a Activity2.



Invocar uma Activity através de uma Intent no Android é simples e, para isto, usamos a seguinte sintaxe:


Intent i = new Intent(getApplicationContext(), Activity2.class); 
startActivity(i); 
 
Também é comum você encontrar o this, no primeiro parâmetro já que este é também uma forma de informar o contexto atual do aplicativo, entretanto é aconselhável utilizar o getApplicationContext(), sempre funciona já o this em certos casos pode não funcionar.

A maneira que utilizamos a Intent acima para invocar uma outra Activity é chamada de explicita devido ao fato de termos passado como parâmetro o nome da Activity que queremos chamar. Usar uma chamada explicita em uma Intent acaba deixando nosso código altamente acoplado, uma vez que devemos saber o nome da Activity que queremos chamar. Se o nome da Activity a ser invocada for modificado, por exemplo, o código quebraria facilmente e então teríamos que corrigir todas as outras classes que invocam esta Activity. 


Dica
As Intents explícitas são usadas apenas para chamadas entre componentes do mesmo aplicativo, já que é preciso ter acesso direto e conhecer o componente que será invocado.
  
Reduzindo o acoplamento com Intents implícitas

No exemplo anterior vimos como usar uma Intent de forma explícita. Iremos agora aprender como reduzir o acoplamento do nosso código ao usar as Intents, através das Intents implícitas. As Intents implícitas são mais usadas quando desejamos fazer a interação entre componentes de aplicativos diferentes.

Imagine, por exemplo, que você tem um aplicativo que precise fazer a leitura de um código de barras e executar uma ação com o resultado desta leitura. Ao invés de desenvolver toda a funcionalidade para leitura de código de barras, você pode delegar esta responsabilidade a um aplicativo que já o faça e apenas obter o resultado da leitura realizada e executar a ação desejada. Fazer isto é possível usando as Intents de forma implícita. Veja a sintaxe básica do uso de uma Intent de forma implícita: 
 
Intent i = new Intent("br.com.nasemanadaprova.action.SEGUNDAACTIVITY"); 
startActivity(i); 


Perceba que na forma implícita nós apenas passamos para o construtor da Intent uma String informando o nome que foi definido para o componente que desejamos invocar, neste caso uma Activity. Este nome que passamos como uma String foi definido através de um Intent Filter no AndroidManifest.xml (trecho de código abaixo). 

<activity
android:name="br.com.nasemanadaprova.SegundaActivity"
android:label="@string/title_activity_segunda_activity" >
<intent-filter>
<action android:name="br.com.nasemanadaprova.action.SEGUNDAACTIVITY " />
</intent-filter>
</activity>

Note o quanto ficou desacoplado o nosso código, pois desta forma não precisamos saber o nome da classe do componente e nem mesmo ter acesso direto a ele pois o Android irá fazer o meio de campo para que seu aplicativo consiga chegar até o componente desejado.

Casso você queira conhecer um pouco mais sobre as Funcionalidades de uma Intent é só clicar em Próximo

Há sempre alguma loucura no amor. Mas há sempre um pouco de razão na loucura.
Friedrich Nietzsche
 



 
Tagged under:

Intents e Intent Filters – Introdução - Parte I


Todo mundo que já desenvolveu algum aplicativo para Android que trabalhe com duas ou mais Activities deve ter usado uma Intent, mas você sabe realmente como funciona uma Intent?

Geralmente utilizamos uma Intent para invocar uma Activity através de outra Activity. Porém a Intent serve para muito mais do que isso, para comprovar o que disse irei começar uma série de posts para que você possa entender melhor o que são as Intents e qual a sua finalidade no Android.

Intent:
Nada mais é do que uma mensagem enviada por um componente de um aplicativo ao núcleo do Android, informando que deseja realizar uma ação, ou seja, uma mensagem informando a intenção de se realizar algo no sistema.

Através da Intent podemos pedir para o Android chamar um determinado componente do nosso aplicativo ou um componente de um outro aplicativo instalado no dispositivo. Veja, na Figura abaixo a arquitetura do Android mostrando como as Activities usam as Intents para chamar componentes dos aplicativos.

As Intents permitem que os aplicativos se comuniquem uns com os outros, fazendo com que um aplicativo aproveite as funcionalidades disponibilizadas por outros aplicativos. Através de uma Intent, em um aplicativo Android, podemos por exemplo:

(Futuramente irei criar um exemplo pra cada item desse).
  • Invocar uma determinada Activity de um aplicativo;
  • Invocar um Service para executar um serviço em segundo plano.
  • Enviar um Broadcast para o Android
  • Selecionar um determinado contato no aplicativo de contatos do Android e obter seus dados;
  • Abrir o aplicativo de mapas do Android em uma coordenada desejada;
  • Abrir uma página da Web;
  • Discar para um número de telefone através do aplicativo de telefone do Android;
  • Enviar um SMS através do aplicativo de mensagem do Android;
  • e várias outras possibilidades.

    Esse é o primeiro post na série relacionadas a Intents, para ler o próximo é só clicar Aqui.
    Qualquer sugestão ou duvida fique a vontade para deixar um comentário.

    A vantagem de ter péssima memória é divertir-se muitas vezes com as mesmas coisas boas como se fosse a primeira vez.
    Friedrich Nietzsche



Tagged under: ,

O adb não reconhece o celular? [problema resolvido]



O adb não reconhece o celular ?
O problema de List of devices attached   ????????????    no permissions.
Não se preocupe esse problema tem solução, e está nesse post.

Solução para o linux Passo-a-Passo


1. Vá para o diretório /etc/udev/rules.d
2. Abra o diretório “rules.d” como root.
3. Crie um arquivo chamado 51-android.rules
4. Abra o arquivo 51-android.rules e adicione a seguinte linha

SUBSYSTEM=="usb", ATTR{idVendor}=="Coloque o id", MODE="0666", GROUP="plugdev"

Segue abaixo uma lista dos IDs conhecidos.

Acer 0502
Dell 413c
Foxconn 0489
Garmin-Asus 091E
HTC 0bb4
Huawei 12d1
Kyocera 0482
LG 1004 /18d1 (Nexus 4)
Motorola 22b8
Nvidia 0955
Pantech 10A9
Samsung 04e8
Sharp 04dd
Sony Ericsson 0fce
ZTE 19D2

obs: Caso o seu celular seja alguma de alguma marca do além, e que não tenha aqui, é só digitar "lsusb" no terminal e ver qual o id do seu dispositivo.

5. Abra o terminal também como root e coloque o seguintes comandos:

chmod a+r 51-android.rules /* Adiciona uma permissão ao arquivo*/
udevadm control --reload-rules /*regarrega os rules do sistema*/
/etc/init.d/udev restart /*restarta o udev*/


6. Por ultimo é necessário executar as seguintes linhas de comando:
./adb kill-server /* para o servidor */
./adb start-server /* inicia o servidor */
./adb devices /* lista dispositivos conectados*/

Importante : A cada tentativa conecte e desconecte o celular da entrada usb.

Observações!
O arquivo 51-android.rules funcionou perfeitamente no linux-mint, porém em outras distribuições algumas vezes não funciona, não se preocupe para resolver esse contratempo é necessário apenas testar como os seguintes nomes: 90-android.rules, 99-android.rules

Onde encontrei a solução:
http://stackoverflow.com/questions/9210152/set-up-device-for-development-no-permissions
http://forum.xda-developers.com/showthread.php?t=640158
http://mist.cs.st-andrews.ac.uk/blog/?p=331

Tagged under:

Como colocar uma notificação na barra de status - Status Bar Notifications


Notificações
Status Bar Notifications, são aquelas conhecidas barras de status muito usados no WhatApp, Line entre outros. Como em todos os casos que desejamos implementar uma notificação para nossa App, neste também utilizaremos a classe NotificationsManager para enviar as notificações o sistema. Para construir a notificação, é utilizado o Notification.Builder() que possui diferentes métodos  que customizam o conteúdo  e a aparência da notificação.

Application Name: Notificação
Package Name: Notificação
Package Name: br.com.ck.notificacao
Activity Name: MainActivity
Layout Name: main

Na pasta res/layouts altere o arquivo chamado main.xml. Ele deve ficar com o seguinte conteúdo:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/btn_criar_notificacao"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/criar_notificacao" />
</LinearLayout>


O arquivo res/values/strings.xml deve ficar com o seguinte conteúdo:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Notificacao</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="criar_notificacao">Criar Notificação</string>
    <string name="title_activity_notificacao">NotificacaoActivity</string>
    <string name="notificao">Esta tela foi aberta a partir da notificação</string>

</resources>



Na pasta res/layouts crie um arquivo chamado activity_notificacao.xml. Ele deve conter o seguinte conteúdo:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".NotificacaoActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="176dp"
        android:text="@string/notificao" />
  
</RelativeLayout>


Crie um arquivo chamado NotificacaoActivity.java com o seguinte conteúdo:


package br.com.ck.notificacao;

import android.app.Activity ;
import android.app.Notification ;
import android.app.NotificationManager ;
import android.app.PendingIntent ;
import android.content.Intent ;
import android.os.Bundle ;
import android.view.View ;
import android.widget.Button ;

public class MainActivity extends Activity {

       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);
             Button criarNotificacao = (Button) findViewById(R.id.btn_criar_notificacao);
             criarNotificacao.setOnClickListener(new View.OnClickListener() {
                   
                    @Override
                    public void onClick(View arg0) {
                                  Intent intent = new Intent(MainActivity.this, NotificacaoActivity.class);
                                  PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
                                 
                                  Notification notification =  new Notification.Builder(MainActivity.this)
                                               .setContentTitle("Titulo da notificacao")
                                               .setContentText("Texto da notificação")
                                               .setSmallIcon(R.drawable.ic_launcher)
                                               .setContentIntent(pendingIntent).getNotification();
                                 
                                  notification.flags |= Notification.FLAG_AUTO_CANCEL ;
                                 
                                  NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                                  notificationManager.notify(0, notification);
                          
                    }
             });
       }

}