ラベル android の投稿を表示しています。 すべての投稿を表示
ラベル android の投稿を表示しています。 すべての投稿を表示

2011年8月28日日曜日

C2DMをつかってみた

Android 2.2以降からC2DMというAndroidアプリにPushでメッセージを送信する機能を試してみる。
Appengineなら"Channel API"てのもPush通知に使えるみたいだけど、またこんど。

C2DM使うにはまず登録が必要
http://code.google.com/intl/ja/android/c2dm/signup.html

適当にフォームに入力して、少し待つ"AC2DM invitation"という件名のメールがきた。

"Please note that by default, all new sender accounts are held to a development-only quota.
This quota is sufficient for development and exploratory purposes."

ということで、今回登録されたのは開発のみに利用できるということだが特に問題ない。

ちなみに商用サービスで使うには、なにやら利用規模を見積もってメールでやりとりしないといけないみたいです。
"Before you launch a C2DM-enabled application to a large audience,
please reply to this email to discuss a production-level quota,
including estimates on the number of devices and average messages per device."

jumpnote、およびchrometophoneというアプリのソースが公開されていて参考になるみたい
http://code.google.com/p/jumpnote/
http://code.google.com/p/chrometophone/

アプリですが、chrometophoneを参考にすることとして
ここにあった
http://code.google.com/p/chrometophone/source/browse/trunk/android/c2dm/com/google/android/c2dm/

C2DMBaseReceiver.java
C2DMBroadcastReceiver.java
C2DMessaging.java

を利用します。

C2DMBaseReceiverを継承した、C2DMReceiverを作成。
こんな感じ。

public class C2DMReceiver extends C2DMBaseReceiver {
	
    public C2DMReceiver() {
        super(PushMessage.SENDER_ID);
    }
    
    // 登録時の処理
    @Override
    public void onRegistered(
		Context context, String registration_id) {
    	Log.i("C2DMReceiver#onRegistered", registration_id);
    }
    
    // 登録解除時の処理
    @Override
    public void onUnregistered(Context context) {
    	Log.i("C2DMReceiver#onUnregistered","onUnregistered");
    }
    
    // エラー時の処理
    @Override
    public void onError(Context context, String errorId) {
    	Log.i("C2DMReceiver#onError", errorId);
    }
    
    // サーバーからメッセージを受け取ったときの処理
    @Override
    public void onMessage(Context context, Intent intent) {
    	Log.i("C2DMReceiver#onMessage","onMessage");
        Bundle extras = intent.getExtras();
        if (extras != null) {
            String data1 = (String) extras.get("data1");
            String data2 = (String) extras.get("data2");
            Log.i("data1",data1);
            Log.i("data2",data2);
        }
    }
}


こんな感じの画面を表示するActivityを作成してそれぞれのボタンは以下のような実装。
SENDER_IDはC2DMに登録したものを指定。
        Button register = (Button) findViewById(R.id.register);
        register.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View view) {
				// C2DMサーバーへ登録リクエスト
				C2DMessaging.register(PushMessage.this, SENDER_ID);
			}
        });
        
        Button unregister = (Button) findViewById(R.id.unregister);
        unregister.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View view) {
				// C2DMサーバーへ解除リクエスト
				C2DMessaging.unregister(PushMessage.this);
			}
        });


つぎにAndroidManifest.xmlにパーミッションやサービスの設定を記述。
これもchrometophoneのものを参考にして自分の環境にあわせて適当に。
XMLがうまくここに書けなかった。。
http://code.google.com/p/chrometophone/source/browse/trunk/android/AndroidManifest.xml

今回apkはエミュレータにインストール。
エミュレータ上でGoogleアカウントにサインインしてないとregistration_idの取得ができなかったので
サインインをした。

さて動作確認ですが、サーバ側の実装はしていないのでcurlをつかってメッセージ送信してみます。
最初にAuth tokenを取得しなくてはいけないようです。
curl https://www.google.com/accounts/ClientLogin \
--data-urlencode Email=***sender account email*** \
--data-urlencode Passwd=***password*** \
-d accountType=GOOGLE \
-d source=Google-cURL-Example \
-d service=ac2dm
Email,Passwdはsenderとして登録したアカウントのもので置き換え実行すると以下のような値が取得できた。
SID=xxxxxxxxxxxxxxxx
LSID=xxxxxxxxxxxxxxxx
Auth=xxxxxxxxxxxxxxxx

このAuthをつかってメッセージ送信する。
curl --header "Authorization: GoogleLogin auth=*** auth token***" "https://android.apis.google.com/c2dm/send" \
-d registration_id=*** id **** \
-d data.data1=HelloPush \
-d data.data2=HelloPush123 \
-d collapse_key=something -k
registration_idはアプリで登録ボタン押下したときに取得したログに表示されたものを利用。
こんな感じで実行したら、メッセージ届きました。

パラメータの詳細とかはここ。
http://code.google.com/intl/ja/android/c2dm/index.html#push

C2MDをとりあえず使えたということで、ここまで。

Androidアプリ作成でコンパイルエラー?

久々の記事投稿となりました。

新規のAndroidアプリプロジェクトを作成したら以下のようなメッセージが表示されて動かなかった。
"error generating final archive debug certificate expired on"

ちょっと調べてみると、どうやら「~/.android/debug.keystore」ファイルを作り直す必要がある模様。
作り直すのは簡単で上記ファイルを削除してeclipse上でproject->cleanしたら解決しました。

久しぶりに新規のプロジェクトをつくって色々試してみようと思ったらハマってしまった。。

2010年9月24日金曜日

XperiaはHT-03Aと扱いが違うな

電話帳移行ガイドとかあるんですね
http://bit.ly/cYSKCm

Gmailの連絡先にインポートして連絡先同期するより
SDから直接インポートしたほうがよいんですかね?


「海外でご利用になる際のアクセスポイントの設定」なんかもあります。

いつの間にかHT-03Aもヘルプが少しは充実してました。

2010年8月11日水曜日

KaoMashがモバイルアスキーで紹介されました

記事はこちら
とても詳しく使い方を紹介して頂いています。

たくさんの便利なアプリが紹介されていて内容もよくまとまっています。
アプリをお探しの方は一度訪れてみてはいかがでしょうか。
mobile ASCII のサイトはこちら
Android端末からのアクセスにも対応しているようです。
mobile ASCII for Androidでは、Androidユーザーに役立つアプリ情報を中心に、関連する記事を発信します。また、このサイトをAndroid端末で閲覧した場合、各アプリの記事にはAndroid marketへのリンクが貼られていますので、とても便利です! 

2010年5月7日金曜日

Twitter for Android を使ってみた

HT-03AでのTwitterクライアントはTwiccaをずっと愛用していますが、公式アプリ(Twitter for Android) もなかなか使いやすいです。


こんなウィジットもあります。


OS1.6では使えないんですよね。
EclairなROMな方は試してみましょう。

Complete Eclair [v2.0] の /system 配下のファイルを書き換える

これまでのROMでは、以下のようにマウントしなおせばよかったのですが
# mount -o remount,rw /dev/block/mtdblock3 /system

Complete Eclair で上記のコマンドを打ってもうまくいかず、
以下ならできるようです。
# mount -o remount,rw /dev/block/mtdblock4 /system/csys

  • 参考にしたサイト
http://takanory.net/takalog/1220
http://straitmouth.jp/blog/setomits/1964

2010年4月18日日曜日

Complete Eclair [v2.0] を焼いて見る

久しぶりにSuperD以外のROMを焼いて見ました。

手順を簡単にまとめておきたいと思います。

1.まずはROMをダウンロード。2種類ありましたが私は「Complete Eclair v.2.0(Black)」にしました。

2.アプリのバックアップをbackapp.shスクリプトを使用して行う。
スクリプトはこちらから
例) #sh backapps.sh -s 20100418

3.nandroid バックアップをとります。
いざというときに、元の状態に戻せるようにとっておきましょう。

4.wipeしてからflashする。
1.6系からEclairなのでwipeしました。


 5.再起動します。
起動時の画面はN1風か。

6.起動しました。


7.設定はスキップしてアプリのリストアします。
例)#sh backapps.sh -r

以上で完了です。
このROM、Home++が入っているんですね

このROM、Eclairにしてはなかなかスムーズに動くようです。
しばらく使って見ようと思います。

2010年1月6日水曜日

[app] Blogawayを試してみる #androidjp

Blogawayというアプリがあったので試してみる。

携帯からの更新はメールでもできるがアプリでやるメリットはあるのか?と思いつつ。

書き込みテストを兼ねて、この記事はBlogaway で書いてみます。

太字イタリック下線とか書式もつけられるのだが、ちょっと使いにくいかなあ。

タグがつけられるのは、よいが用意したタグを選択できたりするともっとよいな。


<追伸>
Blogawayから投稿した記事は、PCの「HTMLの編集」でみるとすべての文字がUTF8エスケープで記号だらけになっていた。
一度、「作成」タブの方で編集したら日本語で読めるようになりましたが。

Androlibはこちら

2009年11月11日水曜日

#android 開発者向けにメールがきました

New version of Android Market Developer Distribution Agreement. Your action required.


新しい規約に同意してくださいとのことで。

2009年10月29日木曜日

#ht03a @chromepencil の1.6 with rooted にした

結局、公式のアップデートが落ちてくるのを待たず、
昨日の夜コムギドットネットを参照してアップデートをしてしまった ^^
私にとっては、ドーナツのアップデートは都市伝説のままw

あわせて、Superuser.apkもインストールしておいたよ。

#android

2009年10月28日水曜日

#android 2.0 SDKがきた

複数のGmailアカウントを扱えるのはよさそう。
カメラでは、
* Built-in flash support
* Digital zoom
* Scene mode
* White balance
* Color effect
* Macro focus
とあったが、物理的にフラッシュはついてないからだめだな。

ブラウザはHTML5をサポートするとのこと。
ダブルタップズームは、マルチタッチの代わりの策かな。

詳しい内容はこちらを参照。
Android 2.0 Platform Highlights | Android Developers

2009年10月5日月曜日

gTasks

gTasksというアプリを使ってみました。
簡単なタスクメモとしては割りと使えるかなと思います。
http://jp.androlib.com/android.application.com-ssi-gtasksbeta-qBii.aspx


2009年9月30日水曜日

HT-03Aのプロモーション

#ht03a のプロモーション動画おもしろいです。
TV放映したらいいのに。
http://www.youtube.com/watch?v=sSHIBQ75s60

EVERNOTE

先日からEVERNOTEを試用しています。
Twitterとの連携機能が使えるかなと。
まだβ版ですが専用アプリが #android 向けにも出たみたいですね。今後の更新が楽しみです。
先日のRTMに続き、「Android始まったな」というアプリが登場。
EVERNOTEである。
まだβ版ということでMarketではなく野良アプリとして公開されている。
コチラからダウンロード可能。

Evernoteアプリのβ版が登場!

2009年9月12日土曜日

MOTODEV

モトローラの開発者向けサイトがある。http://bit.ly/18MvqU
MOTODEV Studio for Androidというものを使ってみようとサイトに登録してみた。
twitterを意識してハッシュタグを #android

2009年9月9日水曜日

HT-03Aでswap

ついにroot化してswap利用を試してみました。
コムギドットネットさんを参照してやりました。

しばらく、様子をみてみようと思う。

2009年8月28日金曜日

マッシュルームサイトに載せていただきました

マッシュルームの特設サイトにMapMashとKaoMashを載せて頂きました!


adamrocker さんありがとうございます。

2009年8月27日木曜日

KaoMash 使い方

大体、機能がそろったので簡単に機能と使い方を紹介させてもらいます。

まず、simejiをインストールしておいてください。
単体でも一応使えますがあまりおすすめできません。

■simejiから起動して顔文字の入力
・顔文字に変換したい文字列を入力。この場合「わら」

・次にマッシュルームボタンを押下してKaoMashを選択


・起動しましたね。入力された文字列を条件として辞書の中から絞り込まれた
顔文字が一覧表示されます。
あとは好みの顔文字を選択すれば入力できます。

・検索ボタン、メニュー → 検索 から絞込みのやりなおしもできます。


・また、メニュー → 辞書に追加で新しい顔文字を追加できます。
読みと顔文字を登録して使ってみてください。


■そのほか、一覧で顔文字を長押しすると、編集・削除が可能です。

以上、simejiで顔文字入力の入力サポートをするマッシュルーム「KaoMash」のご紹介でした。

追記(2010/8/11)
mobile ASCII に詳しい紹介記事がありますので合わせて読んでもらえると使い方がよくわかるかと思います。記事はこちら「凄まじい数の顔文字をメールで使う「KaoMash」」。

2009年8月26日水曜日

EditTextでソフトキーボードのイベントをハンドリングする

以下のような実装でEditText上でEnterキーが押下された際に
検索を実行できるようになりました。

EditText searchWord = (EditText) findViewById(R.id.search_word);
searchWord.setOnKeyListener(new View.OnKeyListener(){
public boolean onKey(View v, int keyCode, KeyEvent event) {
// ここではEditTextに改行が入らないようにしている。
if (event.getAction() == KeyEvent.ACTION_DOWN) {
return true;
}
// Enterを離したときに検索処理を実行
if (event.getAction() == KeyEvent.ACTION_UP
&& keyCode == KeyEvent.KEYCODE_ENTER) {
EditText word = (EditText) findViewById(R.id.search_word);
if (word != null && word.length() != 0) {
// ここに検索処理(省略)
}
return true;
}
return false;
}
});
なかなか調べてもわからなかったのでメモしておきます。