Nesse terceiro post da série sobre Android Wear, vou mostrar como criar aplicativos específicos para smartwatches. Se você perdeu os dois primeiros posts, leia aqui e aqui.
Crie um novo projeto no Android Studio e após informar o nome e o pacote, clique em Next. Será exibida a tela a seguir, onde você deve selecionar o checkbox "Wear". Depois, clique em Next.
Na próxima tela do assistente, temos a opção de criar uma nova Activity, marque a opção Blank Wear Activity e clique em Next.
Dê um nome à sua Activity e o arquivo de layout que apontará para outros dois arquivos de layout: um para relógios redondos (como o Moto 360) e outro para relógios quadrados (como o Samsung Gear Live).
Clique em Finish e o nosso projeto Android Wear estará criado. Percebam que na pasta res/layout foram criados três arquivos: activity_my.xml, rect_activity_main.xml, round_activity_my.xml. O primeiro é listado abaixo:
<android.support.wearable.view.WatchViewStub xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/watch_view_stub" android:layout_width="match_parent" android:layout_height="match_parent" app:rectLayout="@layout/rect_activity_my" app:roundLayout="@layout/round_activity_my" tools:context=".MyActivity" tools:deviceIds="wear"/>Notem que o conteúdo desse arquivo é apenas uma WatchViewStub que aponta para o @layout/rect_activity_my quando o werable for quadrado e @layout/round_activity_my para telas redondas.
Nosso exemplo será bem simples, clicaremos em um botão e ativaremos o reconhecimento de voz do wear. Poderemos falar (e no caso do emulador, digitar) e o texto que for reconhecido será exibido em um TextView. Para tal, abra o arquivo res/layout/rect_activity_my.xml e deixe-o como abaixo.
<LinearLayout 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:orientation="vertical" tools:context=".MyActivity" tools:deviceIds="wear_square" android:gravity="center"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_square" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:src="@android:drawable/ic_btn_speak_now"/> </LinearLayout>Não temos nada de mais nesse arquivo... Então vamos ver como ficará a Activity.
public class MyActivity extends Activity implements View.OnClickListener, WatchViewStub.OnLayoutInflatedListener { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub); stub.setOnLayoutInflatedListener(this); } @Override public void onLayoutInflated(WatchViewStub stub) { mTextView = (TextView) stub.findViewById(R.id.text); stub.findViewById(R.id.button) .setOnClickListener(MyActivity.this); } @Override public void onClick(View view) { Intent intent = new Intent( RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra( RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); startActivityForResult( intent, 1 /* Request code */); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult( requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK) { List<String> results = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); String spokenText = results.get(0); mTextView.setText(spokenText); } } }No onCreate pegamos a referência do WatchViewStub e setamos o listener para sermos notificados quando o arquivo de layout for carregado com o método setOnInflaterListener. Para isso, nossa Activity implementa a interface WatchViewStub.OnLayoutInflatedListener e consequentemente seu método onLayoutInflated. Nele, inicializamos o TextView e setamos o evento de clique do botão.
Ao clicarmos no botão, iniciamos a Activity de reconhecimento de fala e no onActivityResult, pegamos a lista dos resultados do que foi dito, pegamos o primeiro item da lista e exibimos no TextView. Execute a aplicação e veja o resultado.
Não achei uma forma fácil de excluir uma aplicação no relógio, sendo assim você pode usar o comando adb no terminal.
adb shell pm uninstall -k pacote.da.sua.app
Se você estiver com mais de um device conectado, pode usar a opção -s.
adb -s SERIAL shell pm uninstall -k pacote.da.sua.app
Para saber o serial do dispositivo é só utilizar o comando
adb devices
Qualquer dúvida, deixem seus comentários.
4br4ç05,
nglauber
Fonte: http://developer.android.com/training/wearables/apps/index.html