投稿

2015の投稿を表示しています

2015購入記録

今年も携帯電話買ってしまった。 携帯電話 Motorola - XT1100 Nexus 6 Sony - SOL26 Xperia Z3 HTC - HTC One M9 Microsoft - RM-1090 Lumia 535 Dual SIM Asus - ZE550ML ZenFone 2 Amazon - Fire HDX 8.9 Apple - iPhone 6s LG - Nexus 5X Microsoft - RM-1104 Lumia 950 コンピュータ Kensington - SlimBlade Trackball Intel - Core i5 6600K ASRock - Z170M Pro4S SanDisk SSD Extreme PRO 480GB Corsair DDR4 2400MHz 4x8GB   Fractal Design - Define Mini ゲーム 任天堂 - New ニンテンドー 3DS LL 任天堂 - ファイアーエムブレム if - 白夜王国 Metal Gear Solid V

UWP アプリで Wi-Fi Direct プッシュボタン接続

イメージ
はじめに 何月だか忘れてしまったが、 Windows 10 が正式リリースされた時に公開されたこのページ。 What's new for developers in Windows 10 Wi-Fi Direct API update The device broker is updated to enable pairing with devices without leaving the app. Additions to the   Windows.Devices.WiFiDirect namespace also let a device make itself discoverable to other devices, and let it listen for incoming connection notifications. Note   In this release, the Wi-Fi Direct feature improvements are not built into the UX, and they support only push-button pairing. Also, this release supports only one active connection. 意訳すると、 アプリ画面を開いたままWi-Fi Directのペアリングができるようになりました プッシュボタン方式のペアリングだけがサポートされています 同時接続数は1本のみです という感じだった。 じゃあ試してみるかということで Xperia を相手に色々試していたのだが、何をやっても PIN 入力(相手が PIN 表示)方式でしかペアリングができなかった。自分が接続したい本命の相手はプッシュボタンしか受け付けてくれないのでこれは困る。 諦めていたのだが、11月30日に Windows 10 v1511 (Build 10586, Threshold 2) 向けのSDKが配布されていた。 What’s New for Developers in the Windows 10 SDK Build 10586 Update どうやらWi-Fi Direct関連でもAPI追加があったよ

Lumia 950 開封の儀

イメージ
いろいろあったが、ついに Lumia 950 が届いた。 http://kazyx.blogspot.jp/2015/12/clove.html 2015年末に発売されたスマートフォンとは思えないほど箱が大きい。 画面は高精細でとてもよい。1440x2560。

ButterKnife から Data Binding Library に載せ替える話

はじめに Google IO 2015 で Data Binding ライブラリが発表されました。 当時は他のサポートライブラリと同様に dependencies に追加して使う感じだったのですが、Android Plugin for Gradle 1.5.0 から Build tools 内に取り込まれたようです。 面倒なfindViewById()を楽にする方法といえば ButterKnife が一般的でしたが、公式でサポートツールが提供されるのであれば乗り換えるのも検討する価値はあります。 このエントリを作成している Android Plugin for Gradle 1.5.0 時点ではまだ ベータ版とのことなので、仕様はまだ変わる可能性があります。 Data Binding Guide Please note that the Data Binding library is a   beta release .

いつもの Clove

11月9日 Clove 「Lumia 950 は白と黒が予約できるようになったよ。12/2に出荷だよ」 私 「白」 11月27日 Clove 「白は14日の週に遅延だよ。黒なら12/2に出荷できるし、今なら黒に変更できるよ」 私 「じゃあ黒」 12月2日 Clove 「黒も7日まで遅延することになったよ」 私 「・・・」 (追記) 12月7日 Clove 「9日に発送するよ」 私 「・・・・・・」

Java のライブラリを JCenter で公開する手順まとめ

イメージ
はじめに Android Studio から Android プロジェクトのビルドも Gradle で実行されるようになりました。 Gradle では Maven リポジトリで配信されているライブラリが非常に簡単に使えるので、自作のライブラリを JCenter や Maven Central で公開する効果はこれまで以上に高くなっていると思います。 そこで最近、Github で公開している Java のライブラリを JCenter で公開してみたので、その手順をまとめました。 下記の2ページ参考にしています。 GradleでBintrayにアップロードする手順 How to distribute your own Android library through jCenter and Maven Central from Android Studio 前提 Gradle でビルドできる Java プロジェクトであること。 やりたいこと Gradle でライブラリのアップロードをすること アップロードしたライブラリには署名がされていること 上記が可能な build.gradle を Github にそのまま置けること 自分だけが Bintray へのアップロードをできること 自分以外もビルドはできること

Android 6.0 Marshmallow (API Level 23) ではローカルデバイスIDが取得できない(確定)

Android M preview 2 で自分のMACアドレスとBDアドレスが取得できない  の続きです。 先日 Android SDK 6.0 の最終盤がリリースされました。 Build.VERSION_CODES.M のままで Build.VERSION_CODES.MARSHMALLOW になってなかったりするのでしれっともう一回更新されるかもしれませんが、まあ少なくとも仕様はほぼ最終版だと信じてもいいでしょう。 Android アプリ開発者が怯える Behavior Changes のページに、今回から Access to Hardware Identifier の項目が追加されました。 To provide users with greater data protection, starting in this release, Android removes programmatic access to the device’s local hardware identifier for apps using the Wi-Fi and Bluetooth APIs. The WifiInfo.getMacAddress() and the BluetoothAdapter.getAddress() methods now return a constant value of 02:00:00:00:00:00 . ユーザデータ保護の目的のため、ローカルデバイス ID はコード上から取得できなくなり、ダミーアドレスが返されます。(意訳) 回避手段はなし。

新PC (Z170M Pro4S + Windows 10) が安定したっぽい

BSODで頻繁に落ちてどうしようもなかった 新 PC。 先週末にいろいろ試してみたのですが、 Windows 10 クリーンインストール Windows 8.1 クリーンインストール → Windows 10 にアップグレード 前者は変わらず BSOD 連発だったのですが、後者を試して以降一度も BSOD は発生していません。なんで???と思わざるをえないですが、安定しています。 ドライバは Win 8.1 の時に全て最新のものを適用し、Win 10にアップグレード後は変更していません。 ところで、Z170 Pro4S のチップセットドライバのアップデートが 8/27 に公開されていたみたいなので、今朝適用してみました(オーディオとグラフィックを除く)。 これでまた落ちるようになったらかなり厳しいなあ、という感じです。

PC がまだ不安定

新しく組んだ PC が BSOD 連発していて不安定。 Core i5 6600K ASRock Z170M Pro4S SanDisk SSD Extreme PRO 480GB Corsair DDR4 2400MHz 4x8GB (継続) Radeon HD 7750 最新のドライバあてたら安定したと思ったのですが。 MEMORY_MANAGEMENT とか IRQL_NOT_LESS_OR_EQUAL とか SYSTEM_SERVICE_EXCEPTION とかで落ちます。 メモリダンプは以下の通り。 ******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* MEMORY_MANAGEMENT (1a) # Any other values for parameter 1 must be individually examined. Arguments: Arg1: 0000000000041793, The subtype of the bugcheck. Arg2: fffff68000025df8 Arg3: 000000000000000b Arg4: 000000000000000a Debugging Details: ------------------ Page 26b9c not present in the dump file. Type ".hh dbger

Skylake-S で自作 PC を組み直した

Skylake-S が発売されたのでようやく PC を組み直しました。 オーバークロックもしないので性能的にも値段的にも Devil's canyon でも問題なかったのですが、まあ待ってたので一応 Skylake で組むことにしました。 今回の構成 Core i5 6600K ASRock Z170M Pro4S SanDisk SSD Extreme PRO 480GB Corsair DDR4 2400MHz 4x8GB (継続) Radeon HD 7750 Skylake はリテールの CPU クーラーがついていないのでそれと、ケースも Define mini を新規に買いました。DDR4 メモリもまだかなり割高なので結構な出費です。 これに加えて Z170M Pro4S には S/PDIF 出力がないことに組んでる途中に気がついたので、ASUS の Xonar DGX を追加で購入することになりました。これで合計10万円くらいです。 ところで、上記構成に Windows 10 x64 をインストールして、マザーボード付属のインストールディスクのドライバを適用していたら MEMORY_MANAGEMENT エラーのブルースクリーンが連発していました。 Windows のメモリ診断を回しても特に問題なかったのでメモリエラーの可能性はほぼ無くなったので、ASRock のWebページから今日時点で最新のドライバーを全て入れ直して、Radeon のドライバも最新のものを入れたら安定したのでどうこう言うほどではないですが。 とりあえず、CPU より何より Extreme PRO がめちゃくちゃ速いので満足です。 ちなみに、Xonar DGX は S/PDIF 出力(音楽アプリで出力先固定)中にプライマリー出力先の音声(通知音とか)が出ると S/PDIF がしばらく無音になる雑魚ボードなので微妙です。 参考用の旧構成 Core i5 2500K ASUS P8Z68-V PRO Intel SSD 330 180GB Elixir DDR3 1333MHz 4x4GB Radeon HD 7750

Android M preview 2 で自分のMACアドレスとBDアドレスが取得できない

先週、Android M preview のリビジョン2がリリースされました。 Support and Release Notes https://developer.android.com/preview/support.html Key changes の Remote Bluetooth/Wi-Fi MAC's now require either the   android.permission.LOCATION_FINE   or android.permission.LOCATION_COARSE   permission. が気になったので調べていたのですが、どうやらこのリリースノートは少し誤っているようです。 調べた結果を羅列すると、 Remote Bluetooth MAC (BT接続中の相手のBDアドレス) は Bluetooth 系の従来のパーミッションがあれば取得できる Remote Wi-Fi MAC が何なのかはよくわからないですが、接続先のMACアドレス?のことなら BSSID として取得できる 自分のMACアドレスとBDアドレスは取得できない  (固定の 02:00:00:00:00:00 が返ってくる) リリースノートにある、 android.permission.LOCATION_FINE と android.permission.LOCATION_COARSE は存在しない android.permission.ACCESS_FILE_LOCATION と android.permission.ACCESS_COARSE_LOCATION なら以前から存在するが、どちらをランタイムで取得しても自分のMACアドレスとBDアドレスは取得できない android.permission.LOCAL_MAC_ADDRESS というパーミッションがあるが、インストール時にもランタイムにも許可されない Issue トラッカーにも既に上がっていてステータスは Acknowledged です。 https://code.google.com/p/android-developer-preview/issues/detail?id=2427 Location 系のパーミッションが

Lumia 535 Dual SIM を買った

イメージ
M8をWindows 10 mobileのテストデバイスに使用する予定なので、Windows Phone 8.1 キープ用に Lumia 535 を買いました。MS 印のついた非常に低価格($100 以下)の Lumia です。   日本では GSM を吹いているキャリアが無いので全く意味が無いですが、2つめのSIMスロットが用意されています。電話アプリとメッセージアプリも2つずつあります。 ディスプレイ解像度もかなり低くて見られたものではないのですが、一番低価格感を感じたのは裏ブタです。材質がペラペラのプラスチックで、安いスマートフォンケースみたいです。また形状からお察しの通り、外すときは画面全体に手をかけてひねるようにして開けます。何度か付け外ししたらディスプレイにヒビでも入るんじゃないかと心配です。  

Windows Runtime アプリでの Wi-Fi to Cellular handover

Windows 10 Mobile で、「Wi-Fi接続が制限されている時にモバイルデータ通信を使う」という設定が追加されていました。 Android でも Lollipop 以降の Nexus ではデフォルトで同等機能が有効(ベンダーのカスタマイズによって挙動が違ったりする最悪な状況ですが)だったりしますが、API Level 21 で追加された Network 関連クラスを使用することで、通信に使われるネットワークインタフェースをアプリからバインドすることができます。 Windows 8.1 までの Windows Runtime 既存APIで、Android と同じようにインタフェースのバインドができるのか調べてみました。 UDP Windows Runtime API では、UDP 通信に Windows.Networking.Sockets.DatagramSocket を使用します。 BindServiceNameAsync(String, NetworkAdapter) メソッドを使えば NetworkAdapter を直接バインドできます。 var filter = new ConnectionProfileFilter { IsConnected = true, IsWwanConnectionProfile = false, IsWlanConnectionProfile = true }; var profiles = await NetworkInformation.FindConnectionProfilesAsync(filter); foreach (var profile in profiles) { var socket = new DatagramSocket(); await socket.BindServiceNameAsync("", profile.NetworkAdapter); ... // というわけで、こちらはデフォルトのインタフェースが Cellular に変更されても問題なし。(バインドした通りに動いてくれるなら。) TCP 生のTCP 通信には Windows.Networking.Sockets.Str

HTC One M9 を買った

イメージ
やっとGold on Gold 色が入荷してたので、HTC One M9を買いました。 iPhone みたいな感じのきれいな薄い金色です。 Nexus 5/6/7/9 以外の Lollipop は初めて触りますが、もうホームアプリ以外は Android 標準 UI とそんなに変わらない感じですね。各社がんばってた通知エリアでの設定値変更も Lollipop 標準 UI にかなり取り込まれてしまいましたし。 恐らくHTC独自なのがナビゲーションボタンのカスタマイズです。 「バック」「ホーム」「ヒストリー」の基本3つ以外に、「ナビゲーションバーを隠す」「クイック設定」などを追加できます。「ナビゲーションバーを隠す」は M8 にもありましたが、画面を広く使いたい時に便利な機能です。 若干不満なのが、言語設定を英語にすると日本語のフォントがフォールバックして中華フォントになることです。Nexus 6 は英語設定にしても日本語はモトヤLマルベリフォントだったのに。。。

Android の SharedPreferences データはオンメモリで保持されている

SharedPreferences 関連の不具合を調べていてAOSP のコードを見ていたら、 SharedPreferences の挙動について気づいたので Tips としてメモしておきます。 SharedPrefereces に保存した設定値は読み捨てでOK Androidアプリで設定等の小さいデータを保存するのに使用する SharedPreferences ですが、Android Framework 内では SharedPreferencesImpl   というクラスで実装されています。 SharedPreferencesImpl (Android 5.0.1) http://tools.oesf.biz/android-5.0.1_r1.0/xref/frameworks/base/core/java/android/app/SharedPreferencesImpl.java このクラスではコンストラクタでXMLファイルからデータを読み込み、 Map<String, Object>   で SharedPreferences の中身のデータを保持し続けています。 try { stat = Os.stat(mFile.getPath()); if (mFile.canRead()) { BufferedInputStream str = null; try { str = new BufferedInputStream( new FileInputStream(mFile), 16*1024); map = XmlUtils.readMapXml(str); } catch (XmlPullParserException e) { Log.w(TAG, "getSharedPreferences", e); } catch (FileNotFoundException e) { Log.w(TAG, "getSharedPreferences", e);

Nexus 6 の調子が悪い

Nexus 6 の調子が悪い。 週に一回くらいポケット内で再起動。(たまになら許す) 再起動後に PIN 入力求められるが、ポケット内なのでタイムアウトしてシャットダウン。(これは仕様) 再起動後に30分くらいモバイルネットワーク(docomo)を掴まない。 掴んだと思ったら IP アドレスが取得できずデータ通信ができない。 IP アドレスが振られたと思ったら LTE ではなく HSDPA。 一日後くらいにふと気づくと LTE 掴んでる。 掴んでもしばらくすると見失うことがある。 アンテナピクトに H も LTE も表示されてないのにデータ通信できる時がある。(これは表示バグなのでどうでもよい) とりあえずファクトリーリセットしました。 Tap & Go 便利。 はやく Lollipop MR1 降ってきて。 追記 2015/03/04 コメント欄で指摘していただいたとおり、不要なAPN設定を削除することでモバイルネットワークの安定性が劇的に改善するようです。

Nexus 6 XT1100 買った

イメージ
いつまで待っても Google Play の在庫が復活しないので、Y! mobile で Nexus 6 を買いました。 キャンペーンも特にやってないので、定価の完全新規でベーシックプランS契約しました。 ポイントのつく量販店で買って、即解約すれば日割り支払いで済むので、契約手数料を含めても Google Play で買う場合より出費は少ないです。さっさと買ってればよかった。(・・・Yモバブラックになる可能性は高いですが) サイズのわりにそれほど持ちにくくないですが、片手で使うには少し修行が必要ですね。 背面が金属なので持った感触がサラサラしててとても良いです。 Nexus 5 に引き続き、Qi で充電できるのも地味に便利です。