忍者ブログ

アンドロイドのあれこれ

音声認識するための簡単なアプリを紹介します。

MainActivity.java
public class MainActivity extends Activity {

private static final int REQUEST_CODE = 1;
private ListView wordsList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button speakButton = (Button) findViewById(R.id.speakButton);

wordsList = (ListView) findViewById(R.id.list);

// 対応する音声認識のサービスがない場合はボタンを無効に
PackageManager pm = getPackageManager();
List activities = pm.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() == 0) {
speakButton.setEnabled(false);
speakButton.setText("Recognizer not present");
}
}

public void speakButtonClicked(View v) {
//音声認識へインテントを送信
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Voice recognition test...");
startActivityForResult(intent, REQUEST_CODE);
}

/**
* 音声認識からの結果を受け取る
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 音声認識のエンジンからのいくつかの結果
ArrayList results = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
// 認識結果を表示
wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
results));
}
super.onActivityResult(requestCode, resultCode, data);
}
}

/res/layout/activity_main.xml
<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" >

<Button android:id="@+id/speakButton"
android:layout_width="fill_parent"
android:onClick="speakButtonClicked"
android:layout_height="wrap_content"
android:text="Speak!" />

<ListView android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" />

</LinearLayout>

・・・つづきはこちら

EditTextなどで入力された文字列のスペルチェックはAndroid 4.0 API Level 14から追加されました。
SpellCheckerSession、SpellCheckerSessionListener、TextServicesManager、一緒に使用します。

SDKにスペルチェックのサンプルデモ、HelloSpellCheckerとSampleSpellCheckerServiceというアプリがあります。
SampleSpellCheckerServiceは実行しても起動するアプリ(アクティビティ)がありません。確認する方法は
インストールしたら、「設定」->「言語と入力」->「スペルチェック」にチェックしてスペルチェック選択すると「Sample correction」が出てきて確認できます。

HelloSpellCheckerはスペルチェックを有効している場合、スペルの候補を出すためのサンプルアプリです。
SpellCheckerSession.getSuggestions() は API Level 15まで、API Level 16からは
SpellCheckerSession.getSentenceSuggestionsが推奨されています。

・・・つづきはこちら

(´;ω;`)どうせ、ふらぐめんと・・・弱いので簡単なサンプルだけ作ってみました。
そういえば一年前にもFragment勉強しようそうしようとつぶやいていたが今になってもFragmentの使い方書き方なにひとつも理解していません。

Android Developers 公式サイトのサンプルもあるので
Supporting Multiple Screens - http://developer.android.com/guide/practices/screens_support.html

スマートフォンで実行すると普通のひとつの画面が表示され、タブレットでみると分かれて2画面表示になるアプリのサンプルです。

・・・つづきはこちら

Photo Sphere はAndroid 4.2 のカメラアプリに追加されたものです。Googleストリートビューのような360度パノラマが端末で撮影できます。
残念ながら自分の手元には4.2のスマートフォンがないのですぐに試したくても試せないです。



Photo SphereはGoogle Play Servicesのライブラリーです。Android用のPlay Services 2.0からPhoto Sphere APIが追加されAndroid 2.2以上動作可能のようです。
Google Play Services

・・・つづきはこちら

PR
© Android Advent
powered by 忍者ツールズ / 忍者ブログ / [PR]