ケータイの価格

2011/04/03 | ケータイ

最近地図関連の案件を手がけているのだが、GPS機能の動作確認用にソフトバンクの840SHを新規契約。2010年春モデル(2010年2月5日発売)ということで、ちょうど1年前のモデルだ。

法人として契約したのだが、端末代金3,150円(個人契約でクレジットカード決済にすれば0円)。1年経てばケータイはただ同然になるのか。月々の支払は、ホワイトプラン980円とネット接続のS!ベーシックパック315円のみで合計1,295円。基本的に動作確認でほんの少し使うだけだからパケット定額サービスにも未加入(月額1,029-4,410円)。

S!GPSナビには対応していないけれど、そんなのは専用アプリを使わなければ関係ない(自分はウェブ屋なのでアプリ開発はしない)。

ソフトバンクのウェブでの測位機能は、実はS!GPSナビに対応していなくても(GPS機能を内蔵していなくても)、ウェブでの測位データ取得が可能で、簡易位置情報機能に対応していればいい。もちろん精度の問題はあるだろうけどウェブからの取得方法(タグの記述方法)は共通だから試用には問題ない。少なくとも簡易位置情報機能には対応している必要はあるのだが。

話題はそれるが、端末を購入する段になって、どの端末が簡易位置情報機能対応なのか知る方法がなかった。ソフトバンクに電話してみたが、「機種名を言ってくれればお調べします」の一点張りで、リストは開示してくれない。これじゃぁ機種選定したいのに意味無いじゃん、とか思ったので、結局自分の持ってるウェブサイトに位置情報サービスをつけて端末名を収集し、そこから候補をしぼるという何とも手間のかかる手法をとってしまった。

後日談(あとになってから気づいた)だがMobile Creationで全端末リストがダウンロードできて、そこに簡易位置情報機能に対応してあるかどうかも書かれていた。もうちょっと早く気づいていれば他の端末が買えたのに(でも端末価格0円では840SHを含めて3機種しかなかったので、当然費用が余計にかかっただろうけど)。

調べてみたら最近の機種ならSAMSUNG製以外は大丈夫なようだ。

これでうちも久々に3キャリア揃い踏みになった。今までGPS関連ウェブを作るときは冷や冷やしながら開発していたけれど、少し落ちつける。ただ、まぁ、ケータイ4台になってしまったのだが・・・。

iOSの横モードは縦モードの1.5倍

最近JavaScriptの仕事をよくしている。PHPも面白い言語だと思っていたけど、JavaScriptも結構面白い。何より、フロントエンドであるブラウザで動作するから、メニューを動かしたり、アニメーションしてみせたりと、ビジュアルが楽しい。

で、今はiOSとAndroidの仕事(アプリではなくウェブ)。iOS(iPhoneでもiPadでも)、縦表示(ポートレート)の場合には正しく表示されているのに、横表示(ランドスケープ)の時に、HTMLの右や下がはみ出してしまうけど、その理由がわからない。諸事情でピンチ操作を無効にしているのだが、CSSで指定しているだけでなくてJavaScriptで画面サイズが切り替わったときにも自動的に表示幅等を変更するように指定しているのに。

調べてわかったことは、iOSでは、横表示は1.5倍で表示されるということ。viewportの指定で、minimum-scaleやmaximum-scale、initiali-scaleを全て1.0で固定してやることで回避できた。調べてみたら、いろいろあるようだ。

あとCSSでランドスケープ時とポートレート時で値を切り替えることも出来るようだ。

<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css">
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">


それとかCSS内で切り替えたりとか。

@media all and (orientation:landscape){
  #banner{
    width:300px;
  }
}

ま、今回はiOSだけの問題だから・・・どうやって対応するか考えることにする。

携帯開発と画面サイズ

携帯用サイトの開発を請負中。今までの場合は、大抵画面の横幅サイズ240ピクセルで決め打ちで問題なかったが、今回の場合は画像が重要なので、機種判別して画面サイズを考慮するように開発したい。

PHPで携帯機種判別というと手堅いところで行けばPEARライブラリを使うのが得策だ。使用するライブラリはNet_UserAgent_Mobile。

http://pear.php.net/package/Net_UserAgent_Mobile/

便利なツールではあるが、最終更新日が本日現在で2009年6月23日になっている(stableになったのね)。つまりそれ以降の機種情報は含まれていないことになる。実はプログラムの更新はなくて、機種情報は更新されていたりするのか、と思って一式ダウンロードして確認してみたけれど、残念ながら最新機種の情報はやはりなかった。ここは自作するしかないだろう。

携帯キャリア各社のウェブサイト上で、一応画面サイズの情報が公開されているようだ。それらは以下のリンク先を参照。

WILCOMやemobileは考慮しないけど一応掲載。emobileはリンク先URLに日付が入っているので将来はURLが変わっていると思う(まぁ、他のキャリアも未来永劫同じURLとは限らないけれど)。

ここから自作してみようかな。

ドコモでGoogle Static Mapsが時々表示されない

2009/10/21 | ケータイ

表題のとおり、ドコモで携帯サイトに埋め込んだGoogle Static Mapsが時々表示されないという、個人的にはとても深刻な事態に陥っていた(ついさっきまで)。その原因が、今やっとわかった。他にも同じことで悩んでいる人がいるかもしれないので、メモしておく。

ウェブで調べると「アクセス数の制限にひっかかってエラー画像が表示される」というのが多数を占めていた。今回のドコモでの検証の場合はエラー画像ではなく、リンク切れなどの際に表示される[x]が表示されてしまっていた。そして不思議なことに再読み込みを繰り返しているといつしか読み込めるようになり、一度読み込めるとその後は大丈夫になる、というなんとも奇妙な現象だ。

原因を知りたくて、ドコモで数十回アクセスしてみた。IPの制限かも、と思い、エラー時と正常時のIPアドレスなんかも記録してみた。しかしいったんエラーが出ていたにもかかわらず、別の地図を呼び出した際は正常表示される、といったことがわかった。つまりイレギュラー。エラーが出た場合に、直接画像にアクセスしてみたりもした。そうすると文字化けテキストが列挙された(何らかのエラーなんだと推測できる)。

そして調べてわかったこと。必要なパラメータが指定されていなかった。そのパラメータは「sensor」。マニュアルを熟読すると、このパラメータはGPS等のセンサーを使用していて位置出ししたときはtrueを値とし、センサーを使用しなかった場合はfalseを値として持たせる、しかも必須、と書かれている。おそらくGoogleにとって、物理的には何の確証も必要性もないデータではあるが、とにかく必須ということらしい。

今まではsensorの意味がわからなかったので(マニュアルをしっかり読んでいなかっただけなんですけど)、必要性も感じず使っていなかった。でもって、エラー頻発のところにこのパラメータを付け加えてみたところ、うそのようにちゃんと表示されるようになった!。秀樹感激!(古い)。たったこれだけのことに数ヶ月悩んでいたのかと思うと少し悲しいけど、ようやくすっきりした。

ちなみにドコモで表示された文字化けメッセージ(画像を直接ブラウザで呼び出す)では、最初に「臼NG」とかいてあった。「多分NGなんだろう」という意味だと思っていたけれど違った。最初の部分が文字化けしていて、(1byte)PNGらしい。つまりPNGのエラー画像が返されていたのだけれど、ドコモの端末ではPNGが読めなかったので、リンク切れのような形で表示されていたのだった(そんなに古い機種じゃないんだけど)。

教訓:マニュアルはちゃんと読みましょう。

携帯でCSS

2009/10/19 | ケータイ

最近は携帯でもCSSが使うことができる。もちろん前から使える機種は増えているわけだが、最近はほとんどの機種が使えるっぽい。うちでは基本的に3キャリアを常備しているが、どれも問題なく表示できているようだ。

しかし、いざ自分でコーディングしてそれぞれの端末で見てみると、なぜかドコモだけNG。なにをどうやってもだめ。文字サイズの変更をしてみたのだが、何を指定しても変化してくれない。なぜ?。

人から聞いたのだが、ヘッダが必要とのことだった。headタグではなくて、httpヘッダが必要・・・。ほんとにそんな面倒なんだろうか。とりあえず調べるのが面倒。ということで教えてもらったヘッダをつけてみた。

header(‘Content-Type: application/xhtml+xml’);

おぉぉ、CSSが反映された!。

と、ここまできてからウェブで検索してみた。ke-tai.orgさんに情報があった。

  1. iモード用のXML宣言、DOCTYPEを付ける
  2. CSSは外部ファイルにしない、ヘッダ部にも書かない
  3. 拡張子を「.xhtml」にする ※別の方法もあり

まじっすか。いろいろうるさいみたい。でもこの3つを守ればCSSが反映されるんだったら、HTMLだけで問題なかったわけか。勉強になりました。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net