2011年4月15日金曜日

【Android】サービス起動時に引数を渡す

ちょっと困ったのでメモ。

AndroidでActivityから別Activityに情報を渡す際は、Extraの利用が一般的だと思います。

しかし、Serviceの場合はgetIntentメソッドが無いので困った。

よくよく考えて見ればonStart()が引数でintentとってるじゃん!!

ということでこんな感じ↓
@Override
public void onStart(Intent intent, int startId){
   this.dataSource = intent.getStringExtra(タグ名);


2011年4月12日火曜日

openPNEでスマートフォン表示その2

openPNEでスマートフォン表示する際に、UserAgentの判定をcontroller.php内のexecute()で行ってたら、問題が発生。

do系の処理時に、直接forwordを呼ばれる場合があるようでその時にモジュール名にktaiを渡すと弾かれてしまう。
すでに他のページが見れる状態ならおそらく何も処理をせずにh_homeが表示される。

リダイレクトを使っているところはモジュールを再判定するので問題ない

2011年4月7日木曜日

smartyで配列ダンプ

{$var_arr|@debug_print_var}


こういうちょっとしたことで案外困るんデスネ。。。

2011年4月6日水曜日

PHPでマルチスレッド (非同期)

なんかかっこいいタイトル付けてますが、コマンド実行して出力を/dev/nullに捨てるだけ

system('スクリプト等' > /dev/null &, );

こんな感じのリダイレクトすれば処理を待ちません。
exec()でも同様です。

別サーバーへスクリプト流すのにレスポンスを待たせたくなかったのでやってみました。

openPNEでスマートフォン表示

スマートフォン用の表示というより、テンプレートの切り分け方に関して発見したのでメモ。

テンプレートファイルをセットしているのはcontroller.phpのopenpne_forwardメソッド。
150行目付近でdo系かpage系か判定した直後

$smarty->templates_dir = $module . '/templates';

これ↑

$module変数はこのメソッドの前にopenpne_execute内でisKtaiUserAgentにて判定。
要は携帯のエージェントじゃなきゃPCで来る。

ので、こんな感じのことやればいいのではないかと


if($module == 'pc' && (strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone')|| strstr($_SERVER['HTTP_USER_AGENT'], 'Android'))){
         $smarty->templates_dir = 'ディレクトリ名/templates';
        }else{
         $smarty->templates_dir = $module . '/templates';
        }

こうすればロジックはPCでテンプレートだけ別物を使うことが可能ではないでしょうか?

2011年4月2日土曜日

AndroidエミュレーターからホストPCにアクセス

ちょっと困ったのでメモ。

Androidアプリの開発する際に、ホストPCのローカルサーバーにエミュレータからアクセスしたいことがあるかともいます。

その際、localhostや127.0.0.1ではエミュレータ自身にリクエストしてしまいます。iPhoneシュミレータは確かこれでホストPCにいくはず。

正しくは10.0.2.2がホストPCになる。
バーチャルホストなどでhostsを書き換える場合は/system/etc/hostsを書き換える。

adb shellにはviなどのエディタコマンドがないのでddmsやadb pullコマンドなどを使ってファイルを引っ張り出して編集します。

ちなみに実機に場合はhostsの書き換えにルート化が必要です。
IPはローカルIPでやるのが無難かと思います。

ソース(英語)
http://developer.android.com/guide/developing/tools/emulator.html

ブログ始めてみました

記念すべき初投稿ですが、早速ネタがありません。

まぁ技術メモなので見る人もそういないでしょうが。。。
(だったらEvernoteでも使ってろよ!!)

まぁIT業界の方なら経験あるかと思いますが、フレームワークなんか使っててクラスの仕様とかわからなくなるとドキュメントよりブログの方がわかりやすい場合もありますよね。
当然情報の信頼性に関して裏付けが必要ですが・・・
私もCakePHPの件では大変お世話になりました笑

間違ったことがあれば誰か見た人が訂正してくれることもありますし、これは純粋なオンラインメモにはない強みですね。

最近ではAndroidネタなんかも多いですね。
僕ももう少し身についたら、かっちょいいクラスでも公開してみたいな。

さて、このブログを始めるに当たってどこのサービスを使おうか少々悩みました。
Webの開発とかやってるわりにソーシャルメディアとか疎いもんで。。。

結果、このbloggerを選んだわけです。理由は単純に私がGoogleサービスにどっぷりだからです。
メールは当然Gmail、ブラウザはChrome、携帯も先日Android(HT-03A)からAndroid(XPERIA arc)に変えました。

Androidの専用アプリやPicasaとの親和性なんかも期待してます。
ブログサービスは他のところを知らないので比較はできませんがインプレッションなんかもしようかと思います。