スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ボイスランチャー ・・・ アンドロイドアプリ

Google Playへのリンクは、以下の画像をクリックしてください。







たまに使う「乗換案内」や「カメラ」などのアイコンを探すのが面倒くさい、そんなずぼらな私にピッタリのアプリです。

このアプリは、しゃべることで以下のことをしてくれます。
・アプリを起動する
・グーグル検索をする
・マップ表示する
・電話をかける

アプリを起動する
例えば、携帯に向かって「乗換案内」としゃべりかけると、乗換案内が起動するといった具合です。
初めて「乗換案内」としゃべったときは、その単語をどのアプリにひも付けるかを選択します。次からは、サクッと乗換案内が起動します。



ピンクのボタンを押します。


Tips:ひも付けるアプリを探すのが面倒なとき
インストールしているアプリが多いときなど、アプリがいっぱいあって探すのに苦労するときは、まずそのアプリを動かしておけばOKです。動かしておくと、「最近使ったアプリ」のリストの中に出てきます。

Webページを表示
例えば「フェイスブック」としゃべるとブラウザでwww.facebook.comを表示するといったものです。
上の「アプリを起動する」と手順はほぼ同じですが、違う点は、「アドレスを入力する」というところです。
(以下の画像の、「ココ!」のところ)

アドレスを携帯で手打ちするのは面倒ですから、先にそのWebページを表示し、アドレスをコピーしておくことをオススメします。


アドレスをコピーしてからこの画面に来ましょう

電話をかける
アプリを起動するのと同様、初めてのときはどの人にひも付けるかの設定が必要です。
例えば佐藤さんに電話をかけたい場合、「佐藤さんに電話」としゃべってください。初めてしゃべったときは、電話帳に移りますので、佐藤さんを選択してください。
 次からは、その“佐藤さん”にサクッと電話をします。

単語をグーグル検索
これは特に設定は不要です。「焼肉を検索」と言えば、“焼肉”をグーグル検索します。

マップ表示
こちらも特に設定はいりません。「駐車場をマップ表示」と言えば、付近の駐車場をグーグルマップに表示します。
スポンサーサイト

ProgressDialogで処理待ち後にListViewを描画する

「SQLiteなどでテーブルからデータを読み込み、その間「読み込み中」みたいな処理待ちダイアログを出し、結果が出たらダイアログを閉じてListViewに反映させる」なんて処理。
簡単そうではまってしまったのでメモ。
読み込み中のダイアログボックスを触る時、別スレッドで処理を行うが、この別スレッドではUIの更新ができなくて、そこにはまった。
解決策は、ダイアログを消すハンドラーにUI描画処理を書くこと。

OnCreateでダイアログボックスを表示

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//-- プログレスダイアログボックスの表示 --//
dlg_loading = new ProgressDialog(this);
dlg_loading.setTitle("読み込み中");
dlg_loading.setMessage("Now Loading...");
dlg_loading.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dlg_loading.show();

//-- 別スレッドで処理 --//
Thread thread = new Thread(new pgs());
thread.start();
}



別スレッド:「読み込み中」を表示中の処理
処理が終わったら、ハンドラを呼び出してダイアログを閉じ、ListViewを描画します。

private class pgs implements Runnable {

public void run() {
//--させたい処理処理

//-- 読み込み終了の通知 --//
handler.sendEmptyMessage(0);
}
}



ハンドラー

private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//-- ダイアログを閉じる --//
dlg_loading.dismiss();

//-- ミソ!ココにUIに関する処理を書く(ListViewの更新とか) --//
ArrayAdapter<String> adapter = new ArrayAdapter<String>([呼び出し元のアクティビティクラス名].this, android.R.layout.simple_list_item_1) ;
ListView listView = (ListView)findViewById(R.id.***);
listView.setAdapter(adapater);
}
};



Keyword
読込中 読み込み中 更新中 wait sleep

AlertDialogを出すプログラムをスッキリと

VBでいうMsgBoxのような、とても便利なAlertDialogですが、変数を用意したり、Createしたり、ボタンの挙動を入れたりと、MsgBoxよりは面倒くさいです。

少なくとも変数を用意せずにまとまった書き方をする場合をメモ。

以下のサンプルは、
・レイアウト上のボタンをクリックしたら、ダイアログボックスが出てくる
というものです。

「******Activity」は、そのボタンがあるアクティビティのクラス名です。



btn_del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Show Dialog
new AlertDialog.Builder(******Activity.this)
.setTitle("タイトル")
.setMessage("メッセージ")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//OKが押されたときの処理をここに書く
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//CANCELが押されたときの処理をここに書く
}
})
.show();
}
});

ListViewのフォントサイズや行の幅を変える

リストビューでは、[android.R.layout.simple_list_item_1]を使うことが多いと思います。

//いつもはこんな感じ
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);



これを使いつつ、リストのサイズ(フォントサイズは行の幅)を変える方法です。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view = (TextView)super.getView(position, convertView, parent);
view.setTextSize( 14 );
view.setHeight( 50 ) ;
view.setMinimumHeight( 50 ) ;
return view;
}
};


幅を変えるため、高さと最小高さの2つを設定する必要があるところがみそです。


view.setHeight( 50 ) ;
view.setMinimumHeight( 50 ) ;

syntax highlighter をFC2ブログで使う

Syntax HighlighterをFC2ブログに組み込む手順です。

プログラムを載せることが多いので、きれいな見た目にしたく、syntaxhighlighterを使おうとしました。
が、なかなかうまくいかず。。。

ちなみに、使っているバージョンは「3.0.83」です。


http://recoboo.blog28.fc2.com/blog-entry-88.html
さんのところのやり方では、私の場合はうまくいかず。
http://mmbsrv.blog.fc2.com/blog-entry-7.html
さんを参考にしたらうまくいきました。

ただ、②さんのところでは、改行を自動設定にできないため、その部分については①さんを参考にさせていただきました。

注意! “アップロード先のフォルダ/”は、自分用のフォルダ(パス)名に書き換えてください。





syntaxhighlighterのダウンロード
ココからダウンロードしてください。

FC2にファイルをアップ
「scripts」「styles」のフォルダから、以下のファイルをFC2にアップしてください。ちなみに、4つ目以降のjsファイルは、必要なものだけでOKです。

・shCore.css
・shCoreDefault.css
・shCore.js

・shBrushJava.js
・shBrushCss.js
・shBrushXml.js
・shBrushVb.js"
・shBrushSql.js


テンプレートの設定
「テンプレートの設定」で、使っているテンプレートを編集モードにし、以下の修正をしてください。

</head>の直前に、以下の2行を入れる。





</body>の直前に、以下を入れる。












ブログを書く時
毎回ブログを書く時、ソースコードの上下に、以下の青字のように付け足す。
<pre class="brush: css">
ソースコード
</pre>

ちなみに、「css」の部分は、「xml」「vb」「sql」など好きな言語に変えてください。


ソースコードを貼り付けるときの注意
たとえば、「ArrayList<String> ***」など、「<>」が入る時はバグります。
ソースコードの最後に、勝手に「</String>」が挿入されます。

その解決策がココに載っていました。

そんな時は、HTMLタグ変換ツールを使って、HTMLに特有の文字をうまく変換させた後に貼り付けるのが得策です。
HTMLタグ変換ツール → ココ

SQL Serverのストアドで配列もどき

SQLServerのストアドプロシージャで配列を渡したいけれど、どうやらない模様。
なので、以下のとおり自作。

変数を「|」で区切って渡す内容です。

-----------------------------------

CREATE PROCEDURE TEST
@paramall nvarchar(255)
AS
BEGIN
declare @param nvarchar(255) ;

WHILE @paramall <> ''
BEGIN
if charindex('|', @paramall) > 0
BEGIN
set @param = ltrim(rtrim( substring(@paramall, 1, charindex('|',@paramall)-1) )) ;
set @paramall = ltrim(rtrim( substring(@paramall, charindex('|',@paramall)+1, len(@paramall)) ));
END
ELSE
BEGIN
set @param = @paramall;
set @paramall = '' ;
END

print @param ;
END
END

GO


TEST 'A | B | c'
GO




-----------------------------------

メール送信でGoogleCalendar登録

メールでGoogleCalendar登録したい場合、皆さんどうしてますか?
私はNozbeというタスク管理クラウドを経由して登録しています。

・Nozbeに日時情報を入れてメール送信
・Nozbeがタスク認識 → Googleカレンダーと連動

という流れです。

で、、、
メール送信する際のコマンド(ルール?)が結構忘れがちで、その情報がなかなかググれなかったので、メモ。

・タスク名:「* 」
・プロジェクト名:「#」
・タグ:「@」
・開始日時:「on yyyyMMdd hhmm」
・MTG時間: 「%1h」「%30min」とか

ちなみに、メール送信先は、「ニックネーム.PIN@Nozbe.us」。「.us」ってのが、ぜんぜんWebに載ってないんだよなぁ。。

(例1)6/6 10:00~11:00に「勉強会」というミーティングを入れる時(Nozbeの“sche”というプロジェクトに入れるとします)
* 勉強会 on 20130606 1000 %1h #sche

(例2)6/7 11:00~11:15に「タバコ」というミーティングを入れる時
* タバコ on 20130607 1100 %15min #sche

上記のようなコマンド(パラメータ?)をメール本文に書いて、Nozbe.usに送信すればGoogleCalendarにそのスケジュールが登録されます。件名は空でOKです。

ちなみに、開始日時はかなり自由度の高い設定ができるようです(tommorowとか)


ご参考・・・Nozbeのヘルプ

テーブルの項目名を取得

[テーブルの項目名を取得]の続きを読む



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。