Nexus S開封の儀(今更)

  1. 購入までの経緯
    1. BESTBUYで直接発注
      • 12月6日、正式に12月16日からアメリカBESTBUYで販売開始される旨、発表される
      • Nexus One同様、日本には直接配送(販売)してくれないので、Nexus Oneを入手した人の購入方法などを参考に、販売開始前にMyUS.comというサイトで配送先のアメリカの住所を作っておいて、そこから日本に転送してもらうよう準備しておく。(Googleマップで住所検索するとフロリダの港の倉庫街みたいなところ)
      • 12月16日23時頃(日本時間)、BESTBUYで購入手続き完了する。配送先にMyUS.comで取得した住所を入力。支払い方法は自前のクレジットカード。
      • 直後、「Thank you for your order」というタイトルで「Order Confirmation」のメールが届く。この日は興奮覚めやらぬまま床に就く。
      • 12月17日6時頃(日本時間)、起きてびっくり、「Order canceled」というメールが来てた。「because we were unable to verify your information.」の一文のみで良く原因わからず。ツイッターのTL上でも、世界中で同じことを考えている人がいて「住所が被ったから?」とか「クレジットカードがダメ」だとか「いやいやPayPalでもダメだし」とか、同じようにcanceledな人ちらほら。
    2. 購入代行サービスに切り替える
      • 諦めきれず、今度は購入代行サービス、US-BUYER.comに依頼することに。ユーザ登録後、購入対象の商品のURLと価格を入力して購入代行処理開始。
      • 12月18日3時頃(日本時間)、購入代行サービスから「こちらの携帯は大変人気のようで、既に弊社でも発注しており、次の発注が出来るかどうかわかりませんが、来週になって発注してみることは可能です。」という、結局、買えるのか買えないのか良くわからないメールが届く。年内はムリかなと半ば諦めかけるも「待ちます」と返信する。
      • 12月21日6時頃(日本時間)、購入代行サービスから「本日ショップからメールで『バックオーダーの為、入荷に1-2週間かかります』と連絡がありました。」との連絡入る。年内の入手を諦める。
      • 12月22日10時頃(日本時間)、購入代行サービスから「代行商品が到着しましたのでお知らせいたします。」との連絡!速攻で日本への発送手続きを依頼!
      • 12月23日8時頃(日本時間)、発送手続き完了の連絡。一転して年内入手の希望に胸踊る。
    3. 受け取り
      • 12月23日(米国時間)中に米国ヤマト運輸ポートランド支店を出荷。
      • 12月25日(日本時間)成田小口オペレーションセンターに到着。
      • 12月26日(日本時間)輸入通関。
      • 12月26日(日本時間)国際宅急便サービスセンターから国内発送。
      • 12月28日正午(日本時間)受け取り。27日には家に来てたみたいだけど、不在の為、受け取れず。再配達してもらう。
    4. 購入代金総額
      • 端末代金:$529.99(¥43,110)
      • 購入代行サービス手数用:$106.00(¥8,620)
      • 送料:¥3,200
      • 総額:約¥54,930
  2. 開封の儀
受け取り。梱包はちゃんとされている感じ。

開けたらいきなり裏。

素敵。

同梱品全て。

電池を入れてみる。

電源投入直後。

ようこそ画面。

Googleアカウントでログイン中・・・

Froyoからの機能「データ・バックアップ」。チェック入れておく。

すぐにシステムアップデートの通知。

再起動後、システムアップデート中。

大きさはこのぐらい。

HT03aとの比較。おつかれ、HT03a。

端末情報。一応。

とりあえずADW.Launcherをインストール。

思い切ってHT03aのSIMを刺して運用してみる。

※Bloggerの「投稿の編集」画面の「画像挿入」スゲーやり辛い。。。思ったところに挿入されないし、挿入後「説明を追加」とかすると、画像が本文先頭に飛んでったりする。うまくいく方法は、
  • ブログに載せたい画像をpicasaに全部アップ。画像の順番も入れ替えておく。
  • Blogger「投稿の編集」画面で本文書く前に「画像挿入」。
  • 画像に「説明を追加」する。
  • 本文書く。(先に本文書いておいて出力されたHTMLをローカルのテキストエディタとかにコピペしておいて、「画像挿入」後に、もう一度編集画面にペーストするのが良いかも)
アフォか。使い辛い。

android 1.6 以上の端末にインストールされているAndroidマーケットアプリのアップデート

Android Market Supportさんから「A Message from Android Market」ってメールが来た。
* The details page for every app will now utilize and display the app’s “Promotional Graphic” assets at the top. If you haven’t done so already, we recommend uploading “Promotional Graphic” assets for your apps as soon as possible.
「プロモーション画像(省略可)」のところかな?アプリのスクショ以外に「宣伝用画像(省略可)」ってのもあるんだけど、どこに表示されるんだろか?
* Users will be able to filter applications by content rating. If you haven’t added a content rating for your published apps, you should do so immediately at the Publisher site by December 15 -- applications or games without a rating will be treated as “Mature”.
いよいよフィルタリングが可能になる、と。「公開設定のオプション」のところで、「成人」「13歳以上」「8歳以上」「全年齢」の中から選択するヤツ。12月15日までに設定してないと「成人」向けになってしまうので注意。
* We will be reducing the purchase refund window to 15 minutes.
これはなんだろ?有料アプリ絡みかな?よくわからん。。。
http://goo.gl/RfUzT
UIの変更もあるけど、一番大きいのは、アプリ/コンテンツ製作者に不評だった、「24時間以内なら返品可」という条件が、「15分以内」に変更されたことです。約100分の1に短縮されました
* We will be increasing the maximum size for .apk files to 50MB, from the current 25MB.
.apkサイズ50Mまでおkに。ダウンロードに時間がかかるし、ストレージも圧迫するけど、froyo以降SDにアプリインストールも可能だし、ゲームアプリとかだとそんぐらい必要になるのかな。
* Market will support filtering based on screen sizes and densities, as well as on GL texture compression formats. Filtering is based on <compatible-screens> and <uses-gl-texture> elements in an app’s manifest.
おお、これは大きな変更なのでは?AndroidManifest.xmlでcompatible-screensを書くと、アプリ毎に適した端末のスクリーンサイズと解像度を指定できてマーケットでフィルタリングできると。
GLのほうはようわからん。
* If your app includes wallpapers or widgets, Market will automatically add them to new “dynamic” categories, based on their manifest files.
へぇ~。「dynamic」ってカテゴリは日本語で何になるのか?AndroidManifest.xmlに壁紙とAppウィジェット宣言してると自動的にこのカテゴリにフィルタされると。

12月16日にアメリカでGingerbreadのNexus Sが発売開始になるから、そのタイミングも意識してのアップデートなのかな?

Android マーケットのアプリケーションのレーティング

ACTION REQUIRED:
Starting on November 30th, 2010, it will be mandatory that you add a rating level to your apps in the Developer Console at http://market.android.com/publish when you publish or update an app.
 see also:
http://android-developers.blogspot.com/2010/11/content-rating-for-android-market.html
http://market.android.com/support/bin/answer.py?answer=188189
Google のアプリケーション レーティングを使用して、アプリケーションとそのコンテンツが自分に適しているかどうかをユーザーが判断できるようにしてください。レーティングは、ユーザーが作成するコンテンツや広告、アプリケーションがリンクしているコンテンツなど、アプリケーション内のすべてのコンテンツが対象となります。

Androidマーケットにアプリ公開するときってChromeじゃなくてFireFox使ったほうが良いかもね

Chrome(6.0.472.62ぐらい)だとapkファイルのアップロードとかスクリーンショット画像のアップロードがうまく動かない(Javascript?)。まさかと思ってFireFoxでやったらすんなりw

Unable to launch app ... for broadcast Intent { act=android.appwidget.action.APPWIDGET_ENABLED cmp=... }: process is bad

AppWidgetが、タイトルのようなログを吐いて、ActivityManagerにprocess is badとマークされてしまった。タップするとbroadcast intentを飛ばすようなAppWidgetで、異なる複数のImageViewに同じPendingIntentをandroid.widget.RemoteViews#setOnClickPendingIntentで渡していたのが原因?

こうなったが最後、端末再起動しないと起動させてもらえない。

しかたないので、ImageViewにPendingIntentをセットするのではなく、ボタンを一つだけ配置してそいつにPendingIntentをセットしたらActivityManagerに怒られなくなった。

本当にこんな対処法で良いのか?

ActivityManager#restartPackage(String) is deprecated.

android.app.ActivityManager#restartPackage(String packageName) は非推奨メソッド。
このメソッド、今はただ #killBackgroundProcesses(String packageName) をラップしているだけですよ、とJavadocに書いてある。ソース見ると、
@Deprecated
public void restartPackage(String packageName) {
    killBackgroundProcesses(packageName);
}
って、 #restartPackage って名前が気に入らなかっただけ!?(メソッドの振る舞いが名前と一致して無かったってことかな?)そんな理由で、 android.permission.* まで一個増えちゃったのか・・・
android.permission.RESTART_PACKAGES
android.permission.KILL_BACKGROUND_PROCESSES
しかも、 #killBackgroundProcesses(String packageName) は
since: API Level 8
とりあえず、しばらくは #restartPackage(String packageName) で良いや。。。

android.permission.RECEIVE_WAP_PUSH

Android SMS Pushの活用 【受信】
前回のWAP Push送信Activityクラスと今回の受信Receiverでキャッチボールを試みてみました。しかし、残念なことに日本のdocomoネットワークではWAP Push受信はできませんでした。。。サーバー側でWAP SMSのトラフィックをカットしている模様ですね。
確かにセキュリティ面で問題となってきそうな機能ではあります。
 docomo以外はどうなんだろ・・・
see also: http://groups.google.com/group/android-sdk-japan/browse_thread/thread/9768fc6b55345d07

java.lang.OutOfMemoryError: bitmap size exceeds VM budget

android端末(HT03A)のカメラで撮った画像をそのままBitmapに変換するとOutOfMemoryErrorで落ちる。
public class CameraView extends SurfaceView implements SurfaceHolder.Callback, PictureCallback {
    public void onPictureTaken(byte[] datas, Camera camera) {
        Bitmap bitmap = BitmapFactory.decodeByteArray(datas, 0, datas.length);
        // OutOfMemoryError
ログを見るとこんなことを言われてしまってた。
 java.lang.OutOfMemoryError: bitmap size exceeds VM budget
対処方法はこれ。
BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 2;
        Bitmap bitmap = BitmapFactory.decodeByteArray(datas, 0, datas.length, options);
see also:
http://developer.android.com/intl/ja/reference/android/graphics/BitmapFactory.Options.html
http://stackoverflow.com/questions/477572/android-strange-out-of-memory-issue