Sunday, January 24, 2010

Nexus One で SBM の MMS を送受信する

※追記(2010/04/13): このエントリはもはや古いので新しい情報を参照してください。

※追記(2010/01/26): 嘘記事書いてゴメンナサイ。結局Mms.apkのUser Agentも書きかえないとダメなようです。

下のほうでアプリいれればいいみたいなことを書いてましたが、全くダメでした。
理由はサードパーティのSMS/MMSアプリをいれても、受信自体は純正のcom.android.mms経由で行っているためです。
送信だけは自前でやってるらしく、ちゃんとできたように見えます。

そこで、純正の SMS/MMSアプリのUser Agent Stringを書き換えた物に入れ替えます。
androidのソースにあるpackages/apps/Mms/res/xml/mms_config.xmlを書き換えて、このxmlだけ差し替えたものです。

Download: Mms.apk
MD5: 4084a145043cc83c0a63043f3a990f09

Android SDKにあるtools/adbを使ってぶち込みます。 (要 root)
$ ./tools/adb remount
remount succeeded
$ ./tools/adb shell cp /system/app/Mms.apk /system/app/Mms.apk.orig
$ ./tools/adb push ~/Downloads/Mms.apk /system/app/
997 KB/s (272550 bytes in 0.266s)
$ ./tools/adb reboot

以上でMMSが使えるようになります。
ただ、純正のSMS/MMSアプリってグループメッセージを扱えないようなので、iPhoneのモノには劣ります。
(追記終わり)

Nexus OneでMMSを使うための設定などを。
iPhone用SBM黒SIMを使います。

まず APN の設定は適切にされていることを前提。


純正の「メッセージ」アプリは User Agent を変更できないので使わない。
自動受信とかOFFにしとくといいかも。

マーケットから Handcent SMS なるアプリケーションをダウンロード。


メニューのSettingsからわりと下のほうにあるCustom User-Agentを選び、iPhone (3.0)にしとく。


Sms Receive SettingsにあるRetrieve message settingを選びAuto-retrieveを有効にする。


以上。

通知ポップアップ時の件名は日本語だと化けちゃうみたい。
けどスレッドの表示では問題なさげ。画像の受信もできた。

3 comments:

Tomoki said...

参考にさせて頂いております。

MMS設定でコマンドプロプトから下記の様に入力しましたがうまくいきません。

c:\adb shell       --入力
$ adb remount      --入力
adb remount       --結果
adb: permisstion denied --結果

remountが出来ない様なのですが、このような事象になった事はございませんでしょうか。

takuo said...

rootが必要なんだと思いますが、root化作業はやりましたでしょうか。

shara said...

rootを取得しておりませんでした。

取得後にもう一度行いましたが、受信ができません。downloadがうまくいかないようで・・・