2009年9月アーカイブ

Twitter のタイムラインで「Droid Sensor」「すれちがったー」なるアプリを教えていただきました(ありがとうございます)。

 

なんでも、検出した Bluetooth の端末名を Twitter で「○○○ とすれちがったなう #droidsensor」と呟くらしいです(未確認)。

 

面白いですね。。。

 

勝手な期待ですが、ABC2009Fall では、Android 端末で名刺交換できてたら嬉しいですね^^;

あの人とか、あの人が、作ってくれないかなぁ。。。

勝手な期待ですみません。。。

ADC2の第1ラウンド審査が開始されました。

 

 

審査用アプリは、「Android Developer Challenge 2」という名前であり、Android Marketからダウンロードできます。

ADC2_Install1.png

 

スコア付けは、「Originality of Concept」「Effective Use of the Android Platform」「Polish and Appeal」「Indispensability」という4項目に対して5段階で行います。

ASC2_AppScore.png

 

審査用アプリの詳しいヘルプは、以下のリンク先から参照できます。

本日(2009年9月24日)発売!

 

以下は、「ASCII.technologies」から、見出しの引用(敬称略)。

ここから~

【ASCII.technologies 2009年11月号】

総力特集

グーグルフォンを解剖する
Androidはクラウドの夢を見るか?

グーグルが放つAndroidは、オープンプラットフォームのケータイとして注目を集める。
だが、Androidの本質はそれだけではない。
クラウドコンピューティングの端末として、新しいモバイルデバイスの可能性を秘めている。
今回は、Androidが持つ意味とクラウドとの関係、アプリケーション開発、
応用例などを紹介していく。

 

ケータイを変える 世界を変える(P.30 - 41)
「Androidの可能性とクラウドとの連携」 丸山不二夫

ネットワークと接続したAndroidの可能性を探る(P.42 - 45)
「遍在網の国のAndroid」 神林隆

電話アプリで多用なサービスを考える(P.46 - 53)
「Androidでの電話の制御」 江島正明

IMEアプリケーションの内部に迫る(P.54 - 61)
「Androidの日本語入力」 中山拓也/adamrocker

Androidのインタラクティブ開発環境(P.62 - 67)
「ASEでJava以外のプログラミング言語を使う」 江川崇

手軽な入門用プログラミング言語登場(P.68 - 71)
「BASIC言語ライクなSimpleで書くAndroid」 瀬戸直喜

個性を活かしてゲームを作ろう(P.72 - 77)
「Android UIの特徴とゲーム開発テクニック」 安生真

x86環境で動作するAndroidとそのLiveCD(P.78 - 85)
「PCではじめるAndroid」 きんねこ

Android、Mobile、Sensor、AR、VR......新しいセカイへ!(P.86 - 89)
「AndroidとAR/VR技術の可能性」 SIPropプロジェクト

カメラの向こうに拡がるセカイ(P.90 - 95)
「セカイカメラで目指すもの」 近藤純司/高橋憲一

Androidにセンサーを拡張する(P.96 - 101)
「Gainerではじめるプロトタイプ開発」 渡辺知男

特別対談 ARの未来を覗く(P.102 - 105)
「丸山不二夫×井口尊仁 クラウドとARを語る」丸山不二夫/井口尊仁

~ここまで

 

見出しを読んで、こんなにもテンション上がったの久しぶりです↑↑↑

早速本屋に行ったのですが、いつもの如く置いてなかったです orz...

過去にも「日経Linux」「SoftwareDesign」などの月刊誌の売り切れで悲しい思いをしたので、迷うことなく、即行ネットで注文しました。

届くのが楽しみです!

執筆された方々、お疲れ様でした! 

※追記:無事購入できましたので、ページ番号と執筆者(敬称略)を追記いたしました

Android 1.6 から Text-to-speech (TTS) 機能がサポートされました!

テキストを音声に変換して再生することができます。

さっそく、サンプルを作ってみましたので、是非お試しください。

TTSDemo.png

 ※要Android1.6 (API Level 4)

※紙面の都合上、コードが短くなるようにハードコードを含めて、推奨しない書き方をしておりますが、ご理解ください。

 

サンプルソースコード

package com.adakoda.android.ttsdemo;
import java.util.Locale;

import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.adakoda.android.ttsdemo.R.id;
public class TTSDemoActivity extends Activity implements
        TextToSpeech.OnInitListener {
    private EditText mText;
    private Button mClear;
    private Button mSpeak;
    private TextToSpeech mTts;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mText = (EditText) findViewById(id.text);
        mClear = (Button)findViewById(id.clear);
        mClear.setOnClickListener(mClearClickListener);
        mSpeak = (Button)findViewById(id.speak);
        mSpeak.setOnClickListener(mSpeakClickListener);
        mSpeak.setEnabled(false);
        
        mTts = new TextToSpeech(this, this);
    }
    @Override
    public void onInit(int status) {
        boolean success = false;
        if (status == TextToSpeech.SUCCESS) {
            Locale locale = Locale.ENGLISH;
            if (mTts.isLanguageAvailable(locale) >=
                    TextToSpeech.LANG_AVAILABLE) {
                mTts.setLanguage(locale);
                success = true;
            }
        }
        if (success) {
            mSpeak.setEnabled(true);
        } else {
            Toast.makeText(this, "Failed to initialize",
                Toast.LENGTH_LONG).show();
        }
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mTts != null) {
            mTts.shutdown();
        }
    }
    private View.OnClickListener mClearClickListener =
            new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mText.setText("");
        }
    };
    private View.OnClickListener mSpeakClickListener =
            new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String textString = mText.getText().toString();
            if (textString.length() > 0) {
                if (mTts.isSpeaking()) {
                    mTts.stop();
                }
                mTts.setSpeechRate((float)(100.0f /100.0f));
                mTts.speak(textString, TextToSpeech.QUEUE_FLUSH, null);
            }
        }
    };
}

 

あわせて読みたい

 

※追記:多少ですが見やすくなるよう変更しました・・・

Android 1.6 で追加されたパーミッション(Permissions)は、以下のとおりです。

 

  • android.permission.CHANGE_WIFI_MULTICAST_STATE

Allows applications to enter Wi-Fi Multicast mode.

"Wi-Fiマルチキャストの受信を許可する"

"端末を直接の宛先とはしていないパケットの受信をアプリケーションに許可します。近隣で提供中のサービスを検出したい場合に便利です。マルチキャスト以外のモードよりも電力を消費します。"

 

  • android.permission.GLOBAL_SEARCH

Allows the global search system to access the data of a specified content provider.

 

  • android.permission.INSTALL_LOCATION_PROVIDER

Allows an application to install a location provider into the Location Manager

"位置情報提供元のインストールを許可する"

"テスト用に仮の位置情報を作成します。これにより悪意のあるアプリケーションが、GPSやネットワークプロバイダなどから返される本当の位置情報や状況を改ざんしたり、端末の現在地を監視して外部に報告したりする恐れがあります。"

 

  • com.android.browser.permission.READ_HISTORY_BOOKMARKS

Allows an application to read (but not write) the user's browsing history and bookmarks.

"ブラウザの履歴とブックマークを読み取る"

"ブラウザでアクセスしたすべてのURLおよびブラウザのすべてのブックマークの読み取りをアプリケーションに許可します。"

 

  • com.android.browser.permission.WRITE_HISTORY_BOOKMARKS

Allows an application to write (but not read) the user's browsing history and bookmarks.

"ブラウザの履歴とブックマークを書き込む"

"携帯電話に保存されているブラウザの履歴やブックマークの修正をアプリケーショに許可します。これにより悪意のあるアプリケーションが、ブラウザのデータを消去または変更する恐れがあります。"

 

  • android.permission.WRITE_EXTERNAL_STORAGE

Allows an application to write to external storage. Applications using API Level 3 and lower will be implicitly granted this permission (and this will be visible to the user); Applications using API Level 4 or higher must explicitly request this permission.

 

上記の日本語文字列は、以下のリンク先(GitWeb)から引用しました。

http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/res/res/values-ja/strings.xml;h=f6a546fe63b70a68a0622f410ffdf7eca9b6d514;hb=HEAD

GLOBAL_SEARCH と WRITE_EXTERNAL_STORAGE が、なぜか発見できず。。。

そのままの意味だからいいかな。。。^^; 

Android 1.6 のエミュレーターを起動するには、Android 1.6 用の Android Virtual Device (AVD) を作成する必要があります。

 

Android 1.6 用 Android Virtual Device 作成手順

1. [Window] メニュー > [Android SDK and AVD Manager] をクリック

2. (表示された [Android SDK] 画面で)[New] をクリック

AndroidSDK.png

3. (表示された [Create new AVD] 画面で)以下のように入力し、[Create AVD] をクリック

※以下はサンプルですので、設定値は、お好みにあわせて変更してください

CreateNewAVD.png

以上で完了です^^;

Android 1.5 SDK から Android 1.6 SDK へ更新したい方が対象。。。

 

公式な更新手順は、以下のリンク先から。

 

更新手順概要

1. Android SDK へのパス設定(環境変数)を更新する

2. Eclipse ADT Plugin (Android DDMS / Android Development Tools) を更新する

 ※Eclipse 3.4 (Ganymede) の場合、[Help] メニュー > [Software Updates] から
 ※Eclipse 3.5 (Galileo) の場合、[Help] メニュー > [Check for Updates] から
 ※以下のキャプチャは、Eclipse 3.4 (Ganymede) のもの

UpdateEclipseADTPlugin.png

3. Eclipse Android Preferences を更新する

 ※[Window] メニュー > [Preferences] から

UpdateEclipseSDKPreferences.png

Donuts 開発ブランチベースの Android 1.6 SDK, Release 1 が公開されました。

 

主な変更点

  • QVGAやWVGAなど複数の画面解像度・サイズのサポート
  • 通信方式として新たにCDMA方式をサポート
  • ジェスチャー機能のサポート
  • ユニバーサル検索機能(Quick Search Box)
  • テキスト読み上げの機能(Text-to-Speech)
  • 新しくなった Android Market への対応

 

忙しい人のための・・・Android 1.6 オフィシャルビデオ

  • [0:09] Different Scrren Sizes
  • [0:18] GSM CDMA
  • [0:30] Quick Search Box
  • [1:42] Text-to-Speech
  • [2:03] Android Market

 

※2009/9/17追記:

Android/Donut TTS - does it work in the emulator? - Android Developers | Google グループ」も気になりました。

ウェブページを雑誌やページをめくる感覚で閲覧できる「Google Fast Flip」のテスト版が公開されていました。

詳しくは、以下の公式ブログから。

 

実際に、Android端末で以下のサイトにアクセスし、検索、または任意の(セクション)リンクを閲覧すると、

画面を右から左へタッチ(または、その逆を)することで、ページを遷移させて閲覧できました。

 

Google Fast Flip

 

Google_fast_flip.png

123

2016年8月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31