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