October 29, 2011

PhoneGapで録音する場合の注意点

PhoneGapで録音する場合、Mediaを使用します。
http://docs.phonegap.com/en/1.1.0/phonegap_media_media.md.html#Media

以下、Androidでの話です。

var media = new Media("xxx.mp3");
とすると、録音ファイル名はxxx.mp3になります。

ただ、厳密にはSDカード直下にテンポラリファイルとして録音。
録音完了後に正式なファイル名(上の例ですとxxx.mp3)にリネーム。
としているようです。

録音停止直後にJavascriptからAndroid側のメソッドを呼び出してxxx.mp3にアクセスする処理を
書いていたのですが、まだリネーム中なのか、xxx.mp3が存在しないケースが有りました。
(存在するケースも有りました。)

PhoneGap側を以下のように書きなおすと、この問題は収まりました。
media = new Media("xxx.mp3", onSuccess);

onSuccessは録音成功時に呼び出されるJavascriptの関数名になります。
onSuccessの中で、Android側のメソッドを呼び出すように修正しました。

PhoneGapでOptions Menuを表示させる

PhoneGap(1.1.0)でOptions Menuが表示されなかったので調べて見ました。
どうやら、DroidGapを継承したActivityに以下の記述が必要らしいです。
@Override
public boolean onKeyDown(int code,KeyEvent event){
    // Note: http://madroom-project.blogspot.com/2011/10/phonegapoptions-menu.html
    if(code==KeyEvent.KEYCODE_BACK) {
        return super.onKeyDown(code, event);
    }
    return false;
}
尚、return falseするのみだと、バックキーが反応しなくなりました。
なので、この形にしています。

参考:
http://groups.google.com/group/phonegap/browse_thread/thread/91e06087e7779344

PhoneGap(JavaScript)からAndroidのメソッドを実行する

参考:
http://blog.livedoor.jp/hiroki0907/archives/51728780.html

--Java(Android)--
package com.phonegap.example;

import android.os.Bundle;
import android.widget.Toast;

import com.phonegap.DroidGap;

public class XxxActivity extends DroidGap {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.init();
        appView.addJavascriptInterface(new JavaScriptCallback(), "android");
        super.loadUrl("file:///android_asset/www/index.html");
    }

    public class JavaScriptCallback {
        public void callbackTest(String str) {
            Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
        }
    }
}

--JavaScript--
function callback_test() {
    android.callbackTest("yyy");
}

October 21, 2011

Aptana Studioの環境メモ 2011/10/21

Aptanaは主に、PHPでのweb開発用で使用しています。
以下、構成のメモです。
随時、ここに書き足します。



■DL
http://www.aptana.com/

■設定メモ
▼FTPでファイル/ディレクトリUP時の標準permission
Window > Preferences > Aptana Studio > Remote > FTP

▼新規ファイルの文字コード/改行コード
Window > Preferences > General > Workspace > New text file line delimiter

▼フォントの変更
Window > Preferences > General > Appearance > Colors and Fonts > Basic > Text Font > Edit...

▼行番号表示
Window > Preferences > General > Editors > Text Editors > Show line numbers

▼エディタ配色の変更
Window > Preferences > Aptana Studio > Themes
ExportファイルがImport出来ない場合、Exportファイルを開きUTF-8で再保存してImport

▼.htaccess等の隠しファイルを表示
Project Explorerの▼ > Customize View... > Filters
".* files"と".* resources"のチェックを外す?
何かファイルを開いている状態で行わないと反応しない?

▼差分エディタ(?)の色
Window > Preferences > General > Appearance > Colors and Fonts > Text Compare > Outgoing change color



■plugin
▼archive
* JStyle 3.6.2(macでは正しく動作せず。)
http://mergedoc.sourceforge.jp/index.html#jstyle.html

* DBViewer 1.2.3
http://www.ne.jp/asahi/zigen/home/plugin/dbviewer/about_jp.html
Window > Preferences > DBViewer Plugin > SQL エディター
予約語 ... 白
関数 ... 白
文字列 ... 水色
コメント ... 黄色
デフォルト ... 白
背景色 ... 黒

▼update site
* ERMaster
http://ermaster.sourceforge.net/update-site/
Help > Install New Software > Available Software Sites > Eclipse Helios Update Site
に一時的にチェックを入れる必要有。

* RSS View
http://www.junginger.biz/eclipse/

* EGit
http://download.eclipse.org/egit/updates

* BzrEclipse
http://verterok.com.ar/bzr-eclipse/update-site/
Window > Preferences > Team > Bazaar > Console
でBazaar関係のコンソール出力設定

* Subclipse
http://subclipse.tigris.org/update_1.6.x

* openextern
http://openextern.googlecode.com/svn/trunk/openextern_update/
Windowsはそのままで良さそう。
Macは以下のように設定。
open -a finder .
open -a terminal .

■備考
Subclipseで最低限必要なものは
* Subclipse
* Subversion JavaHL Native Library Adapter
* SSHで接続するには SVNKit Client Adapter



■その他
▼XAMPP
http://www.apachefriends.org/jp/xampp-windows.html

▼PortableGit
http://code.google.com/p/msysgit/downloads/list
インストーラでインストールしたmsysgitのgit.exeを指すと以下のエラーが出る。
"This path is not a valid git v1.6.0 or higher binary"(1.7.4なのだけど。。。)
なのでmsysgitはアンインストールしてPortableGitにした。

October 15, 2011

MOTODEVとeclipseの環境メモ 2011/10/15

MOTODEVとeclipseは以下で使い分けています。
* MOTODEV ... 本開発用
* eclipse ... プラグイン等の確認用

以下、構成のメモです。(androidアプリ開発に特化した構成です。)
随時、ここに書き足します。



【共通】
■Android SDK
http://developer.android.com/sdk/index.html

■plugin
▼update site
* openextern
http://openextern.googlecode.com/svn/trunk/openextern_update/
Windowsはそのままで良さそう。
Macは以下のように設定。
open {path}
open -a terminal {path}
* FindBugs
http://findbugs.cs.umd.edu/eclipse
* Subclipse
http://subclipse.tigris.org/update_1.6.x

▼archive
* JStyle(macでは正しく動作せず。)
http://mergedoc.sourceforge.jp/index.html#jstyle.html



【MOTODEV Studio for Android】
http://developer.motorola.com/docstools/motodevstudio/



【eclipse】
http://www.eclipse.org

■plugin
▼update site
* Android SDK用プラグイン
https://dl-ssl.google.com/android/eclipse/



【備考】
Subclipseで最低限必要なものは
* Subclipse
* Subversion JavaHL Native Library Adapter
* SSHで接続するには SVNKit Client Adapter



【設定メモ】
エンコード
Window > Preferences > General > Workspace > Text file encoding

Java
Window > Preferences > Java > Compiler > Compiler compliance level
* 1.6であることを確認

行番号表示
Window > Preferences > General > Editors > Text Editors

Javaファイルのインデントをスペースにする
Window > Preferences > Java > Code Style > Formatter

XMLファイルのインデントをスペースにする
Window > Preferences > XML > XML Files > Editor

半角スペース可視化
Window > Preferences > General > JStyle

bzr diffで"--using=xxx"を省略して外部ソフトを起動する

bazaar.confを編集してコマンドのエイリアスを作成する。

■bazaar.confの所在
* XPの場合
C:\Document settings\(ユーザー名)\Application Data\bazaar\2.0
* Vsitaの場合
C:\Users\(ユーザー名)\AppData\Roaming\bazaar\2.0

* 参考
http://tobysoft.net/wiki/index.php?Bazaar%2F%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

■bazaar.confに追記
--bazaar.conf--
[ALIASES]
diff=diff --using=[使用するソフト名]
--

* 参考
http://doc.bazaar.canonical.com/latest/ja/user-guide/using_aliases.html


October 1, 2011

K-9 MailのCONTENT_URI

■K-9 Mailのgithub
https://github.com/jca02266/k9mail

■アカウント関係のURI
content://com.fsck.k9.messageprovider/accounts/
以下、accountsのURI。

■未読関係のURI
content://com.fsck.k9.messageprovider/account_unread/
以下、account_unreadのURI。

■必要なuses-permission
com.fsck.k9.permission.READ_MESSAGES

■例
(1)
accountsのURIからデータ取得。結果行はN行。

(2)
(1)の結果行はaccountNumberというカラムを持っているので、
account_unreadのURIとContentUris.withAppendedIdする。
ContentUris.withAppendedIdしたURIからデータ取得。結果は1行。
unreadというカラムを持っていて、これがそのアカウントの未読数。

(3)
合計未読数を知りたい場合は、(2)を(1)の行数分実行する。
(一発で取る方法もあるのかも。未確認。)

K-9 Mailの設定メモ

■アカウントの登録
"アカウントの名前を付けます(オプション):"は未入力
"名前を入力します(送信メールの表示名):"に適切な内容を入力

■グローバル設定
表示設定 > 派手な視覚効果を使用する のチェックを外す
表示設定 > アカウントのサイズ表示 のチェックを外す
表示設定 > 検索結果の件数表示 のチェックを外す
表示設定 > 特殊なアカウントを隠す をチェック
表示設定 > 複数選択チェックボックス をチェック
表示設定 > 連絡先の名前を表示 をチェック

■各アカウント設定
一般設定 > 標準アカウント を確認
通知設定 > バイブレーション をチェック
メール送信 > 本文構成 を適切に設定
メール送信 > メッセージの形式 をテキストにする