開発-Android
なにがきっかけかわからないが、突然Androidエミュレータでネットワーク通信ができなくなってしまった。 E/FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE W/MessengerIpcClient: Timing out request: 1 E/Fabric: Settings request fa…
既存のAndroidアプリにアイコンバッジをつけることになりました。いままでAndroidアプリでアイコンバッジ数を厳密に管理して表示させたことがなかったので、いざ実装してみると考えていた以上に大変でした。 Playストアアプリに更新待ちが1件存在しているこ…
去年はSwiftを書いていて、久しぶりにKotlinに触ったら、Kotlin*1の書き方を忘れていたので、パッと思い出せるようにSwiftからKotlinへの移植時に使える置き換えチートシートを備忘録として残しておきます。 思い出したら追加していく。 範囲 for 文 0から3…
最近「OneSignal」を使ったアプリを開発しています。 OneSignalというのは、iOS/AndroidやさらにWebブラウザといったクロスプラットフォームに対応したプッシュ通知の送信サービスです。ネイティブアプリだけではなくXamarinなどにもSDKを提供しているそうで…
Google Play用のアカウントが2つあって(仮にアカウントAとアカウントBとする)、いつもはアカウントBの方でAndroidアプリを公開していました。諸事情があってアカウントAの方に統合したいということになり、現在開発中のアプリをアカウントAで公開することに…
SDKレベルを25から27に上げた影響か今まで気付いていなかっただけか、AndroidアプリのButtonに影(shadow)が入ってしまうようになりました。今まで問題なかったのにどうして……
Android Studio 3.0にしてからエミュレータでのアプリ実行ができなる自体に陥りました。過去の設定ファイル等が悪影響を及ぼしているのではないかと疑って試行錯誤していました。 本件は既に解決しております。 結論から書くと、プロジェクトの設定の「Deplo…
コンパスのように磁気センサーを使って磁北を指したい。 SensorManagerを使って磁気センサー(コンパス)の方位を取得する LocationServiceはユーザーの利用許諾が必要だったけれど、磁気センサーは特にユーザーに許可を得なくても利用できるようです。 sensor…
AndroidでLocationManagerを使って位置情報を取得する方法を紹介します。現在、minSdkVersionが19で開発しています。 事前情報 API 19ではFragment#requestPermissionsとFragment#onRequestPermissionsResultが使えない*1ので、一旦パーミッションの許可をFr…
本記事ではRealm Javaを使って複数条件でソートする方法を紹介します。 Realm Swiftでの複数条件のソートしたい場合、「Realm Swiftを使って複数の条件でソート(並べ替え)する - 酢ろぐ!」の記事をご覧ください。 並び替えをする String[] names = { "onlin…
メモ。あとで書き足す(予定)。 問題 Realm Javaではjsonファイルを読み込んでそのままRealmのオブジェクトをすることができます。しかし、intやstringといったプリミティブ型配列の場合にはそのままダイレクトにRealmに格納することができません。 JSON API…
久しぶりにAndroidアプリでアニメーションしています。 説明はあとで書きます。 アニメーションさせる imageViewのアルファ値を1秒(1,000ミリ秒)かけて0(透明)するアニメーションです。 ObjectAnimator.ofFloat(imageView, "alpha", 0).setDuration(1000).st…
あとで書き足すかもしれない。メモ代わり。 projectの方のbuild.gradle buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'me.tatarka:gradle-retrolambda:2.5.0' } } appの方のbuild.…
AndroidアプリからYouTubeアプリを起動さてみましょう。自分のアプリからアオリちゃんの「トキメキ☆ボムラッシュ」のソロPVを起動させます。ブラウザで見る場合は下記のURLから見られます。 www.youtube.com この動画の場合、URLのhttps://www.youtube.com/w…
弊社ではJenkinsを使ってアプリのCIをおこなっています。ここ2ヶ月間は、少し毛色の違うプロジェクトをやっていたこともあって、ビルドサーバーのジョブは増えていませんでした。……というか Androidアプリのビルド時に謎のエラーが発生した! 久しぶりにAndr…
Androidデバイスに入っている楽曲データ一覧からアーティスト情報やタイトル情報を取得します。 private static final String[] projection = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.TITLE, MediaStore.Audio.…
iOSのUITableViewのスワイプやセルの並び替えみたいな挙動をAndroidで実現するための「ListViewAnimations」というライブラリがあります。 下記のリポジトリに、ListViewAnimationsのDynamicListViewを実装したものを公開しておきました。GitHubの実装がその…
ここ最近Androidアプリネタが続いていますが、この土日悩んだアプリがクラッシュしてしまう件についてメモしておきます。 やりたいこと 日付ごとに異なった時刻を設定できるNumberPickerがありました。イメージがわきにくいと思うので、別の例で……都道府県が…
久しぶりにRealm Javaを使ったアプリをアップデートすることになり色々と手を入れている最中なのですが、使用しているライブラリのひとつの「Realm Java」も古いバージョンのものを使っていたのでこの機会にアップデートさせようとしました。 この記事ではv0…
前回作成したスケルトンプロジェクトを少しだけ弄って、よくあるボタンを押す度にカウントが上がっていくようにしましょう。 content_main.xmlより変更点を抜粋。 layout.xmlにボタンを配置します。ベースがreLayoutなのでViewが被ってしまうのでInearLayout…
kotlinのスケルトンプロジェクトを作るのは、一旦Javaのプロジェクトを作ってからKotlinのコードにコンバートするのが楽なようです。 Android Studioを起動して、[Start a new Android Studio project]を選択します。 アプリケーション名は適当に「Kotlintes…
Kotlinのバージョンがv1.0になったみたいですね。 日本語で書かれた記事はこちらが詳しいです。 そういえば、AndroidでSwiftが使える「RemObjects Silver」がありましたが、アンテナが低いのかあまり話を聞きませんね。 最近、仕事でScalaを使っているのでAn…
Androidの場合、Genymotionを使って開発をしています。本記事では、MacのhostsをGenymotionでも使う方法を紹介します。 data.example.comに接続するIPアドレスを手動で変えたいときがあります。 例えば、サーバーを開発用と本番用で分けていて、それぞれのサ…
僕自身あんまり音楽を聴く習慣がないのでAndroidで音楽を聴く方法をしりませんでした。今日、必要になったのでAndroidに音楽を入れてみました。 まず、PC(Mac)とAndroid(303SH)をUSBケーブルで接続しました。USBケーブルでの接続のモードには3つありました。…
Androidアプリで日時を扱うことが多くなってきました。少し前に「AndroidでHTTPレスポンスヘッダのLast-Modifiedの値を取得する」という記事を書きました。 RFC 2616ではHTTPレスポンスヘッダーに含まれているDateやLast-Modifiedの日付はRFC 1123フォーマッ…
先日のGoogleの新製品イベントでChromecast 2とChromecast audioが発表されました。Chromecast 2はドングル型からペンダント型へのデザイン変更と次の動画を先読みするFast Play機能対応や5GHz対応がメインでしたね。過去モデルとは基本的にあまり変わらなさ…
Androidでヘッドセット(イヤホン)の接続状態が変わったイベントを取得する必要がでてきました。 Androidでヘッドセット(イヤホン)の接続状態の変化を検出する ヘッドセットの状態変更を検出するIntentが用途別に2つ存在しています。Intent.ACTION_HEADSET_PL…
ACCESS_NETWORK_STATEの権限が必要なのでマニフェスト(AndroidManifest.xml)でパーミッションの追加をおこないます。 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 次にマニフェストにレシーバーの設定をおこないます。android.net.conn.CONNECTIVITY_CHANGEを拾えるようにします。 <receiver android:name=".ConnectivityReceiver" > <intent-filter> </intent-filter></receiver></uses-permission>
Android Studioのv1.3.2を使って解説します。 Application nameには任意の名前をつけます。ここでは FragmentSample にしました。 Androidアプリのパッケージ名は、jp.ch3cooh.app_nameのように逆ドメイン記法で表します。次のCompany Domainを入力すると、…
C#でiOSやAndroidのアプリを開発できる「Xamarin」のライセンスを無料で入手できるキャンペーンをやっているようです。 Xamarinの代理店エクセルソフトの田淵さんのブログによると…… 2015/8/17 以前に公開された Windows Phone アプリ個人開発者に無料の Xam…