読者です 読者をやめる 読者になる 読者になる

Androidはワンツーパンチ 三歩進んで二歩下がる

Android卵プログラマーの記録ブログ

AndroidのTextUtilsのisEmptyメソッドとJavaのStringのisEmptyメソッドはわりと違う

年がら年中使っているAndroidのTextUtilsのisEmptyメソッドとJavaのStringのisEmptyメソッドですが、同じ名前で何が違うのか調べたメモです。 TextUtilsクラスのメソッドは全てstaticで定義されていて、JavaのisEmptyメソッドはインスタンス変数から使用する…

EventBusライブラリを使っていた箇所をRxJavaで書き換えたよ

もう2年前になりますが、Androidのコンポーネント間でイベントを送受信する方法としてEventBusというライブラリを使ってみた記事を書きました。 sakura-bird1.hatenablog.com 似たようなライブラリにOttoというものがありますが、こちらはRxJava・RxAndroid…

緯度・経度から郵便番号を取得する

Geocoderクラスを使って緯度と経度から郵便番号を取得する方法です。 題名は郵便番号を取得するとなっていますが、住所も取得できます。 自分が郵便番号というキーワードで検索していたため自分用メモです。 developer.android.com Gercoderを使用して住所(…

LocationManagerはもう古い!Google Service の Location APIを使って現在位置を取得する

しばらく使っていない分野のAPIっていつの間にか非推奨になってたりしますよね。 変化の激しいAndroid開発で全ての変化に付いていくのは至難の業だと思います。 恥ずかしいんですが、この度久しぶりに位置情報の取得方法を調べましたら結構前に時代が変わっ…

DataBindingを使おうとしてバインディングクラスがcannot resolve などとエラーになった時に確認すること

DataBindingを使う時に、プロジェクト生成時に作成したactivity_main.xmlとMainActivity.javaをバインディングしようとしただけで 「Cannot resolve symbol 'ActivityMainBinding'」とか言われたはことないでしょうか。 私は2回あるので、初歩的ではありま…

Android4.4のWebViewでopenFileChooserが動かない件の対処方法2つ JavascriptInterfaceを使う/Crosswalkを使う

WebViewで表示しているページ上で、ユーザーがボタンを押したらローカルのイメージ一覧を表示するような処理があるとします。 そして、ボタンを押されたイベントをネイティブで受け取る→暗黙的Intentでギャラリーを呼び出しファイルを選択させるということを…

アプリをアンインストールすると端末が再起動してしまう現象にキャッシュパーテーションの消去が効くかもしれない

メモです。私の端末: Nexus5x 現象: アプリをアンインストールすると端末が再起動してしまうことがある。 同じアプリをアンインストール→インストールするのを繰り返したが違うアプリだとどうなるかは不明 現象が発生するタイミング: 不定期 端末が再起動し…

Nexus5xがFirmware Updateの画面を表示したまま0%のまま動かない

よくワカランチンメモ手持ちのNexus5Xを電源オフ ↓ power + volume up button 同時長押し ↓ Firmware Updateの画面が表示されたままになる(プログレスバーの数字が0%のまま) ↓ しばらく放置するもなんら状況が変わらない ↓ 電源ボタン長押し ↓ 普通に再起…

Android 6.0 Marshmallow(API level 23) で導入されたDozeでダイアログから電池の最適化の無視を許可したのに設定画面の「最適化してないアプリ」一覧には反映されない問題

こんにちは。最近体調が不安定です。Android 6.0 Marshmallow(API level 23) で導入されたDozeという機能があります。 Optimizing for Doze and App Standby | Android Developers電池を長持ちさせるために、一定時間以上ユーザーがスマフォにアクセスしない…

ExoPlayerで動画の音声をミュートする方法

ExoPlayerと言えばGoogleがMediaPlayerの代替となるものとして発表したオープンソースのライブラリです。 ExoPlayer | Android Developers ExoPlayer - Home公式のDemoを使うこと前提ですが、動画の音声をミュート(ボリュームを調整)する方法のメモです。s…

コンパイル時にpackageの場所がおかしいというメッセージが出た

メモです。エラーではないのですが、このようなメッセージがbuildのログに表示されました。 Information:Gradle tasks [:app:assembleStaging] Observed package id 'add-ons;addon-google_apis-google-19' in inconsistent location '/Users/sakura/Library…

AndroidアプリでFacebookのパーミッションを取得した話

このポストではFacebook API ver2.0 / Graph API v2.4の時点の情報を書いています。 FacebookのGraph APIを利用したAndroidアプリを作りました。 そのアプリはデモアプリみたいなもので、画面のデザインや素材作成も含めて製作期間は一週間ぐらいの小さなも…

FacebookのAndroidアプリを作る。開発者登録〜FacebookアプリID取得

developers.facebook.com AndroidでFacebook SDKを使ったアプリを作成する場合、Facebookのデベロッパーサイトでアプリを登録する必要があります。 その手順をまとめたいと思います。(このエントリー作成時点のFacebook APIバージョンは2.0、Graph APIバー…

AndroidでListPreferenceを使う時にsummaryに選択された項目を自動で表示する方法

AndroidでPreferenceScreenを定義してListPreferenceを使う時にsummaryに選択された項目を自動で表示する方法を調べていて、これ面白いなーと思ったのでメモしておきます。下記のようにListPreferenceのandroid:summary="%s"と指定しておきます。 そうします…

速いと噂のAndroid ORMライブラリDBFlowを使ってみた

Raizlabs社というところのDBFlowというORマッパライブラリを使ってみました。 とても新しいライブラリで、2014/9/7がfirst commitとなっています。github.comこちらのサイト様で紹介されています。qiita.comRaizlabs社のスピードテストでは非常に速いという…

gradleで build variantsを使用して複数のApplication IDを作ったがGCMのレシーバーなどでパッケージ名がバッティングしてしまう時の対処方法

私はgradleを使いこなしていると言うには程遠いレベルですが、Eclipseの時代より楽になった!もう戻れない! と思うものはbuild variantsなる機能を用いるとリリース用、デバッグ用でパッケージ名やapk名やリソースを簡単に変えられることです。Configuring …

Facebookでログイン済みかどうかをチェックし、Facebook SDKのログイン画面を表示する

Facebook SDK v4で動作確認しています。おなじみのログイン画面 Facebookでログイン済みかどうかをチェック (他にいい方法があるかもしれませんが) private boolean checkLogin() { AccessToken accessToken = AccessToken.getCurrentAccessToken(); retur…

DrawerLayout内でマルチタッチ処理を行うとArrayIndexOutOfBoundsExceptionが発生する

「自分用メモ」です。こればっか言ってますなバッドノウハウを自分用メモですと言ってる感が。先人の知恵以外何も無いし 恥ずかしい気分モードですが、気を取り直して書きます。support-v4:22.2.1のお話です。 PhotoViewという、画像をピンチイン・ピンチア…

PhotoViewライブラリを使おうとしたらCould not find com.github.chrisbanes.photoview:library:1.2.4.とgradleに怒られた

偉大なるPhotoViewを我がプロジェクトに取り込むにあたり、エラーに遭遇しました。 その時のメモです。chrisbanes/PhotoViewgithub.comgithubの説明のとおりにbuild.gradleに記述しました。 repositories { mavenCentral() } dependencies { compile 'com.gi…

Material Designを実装するのに役に立ったリンクを紹介します

インコ発信確認をアップデートしました。 インコ発信確認 - Google Play の Android アプリリリースしてから放置してしまっていたのですが、ユーザー様からLolipopスタイルにしてほしいとご意見をいただきマテリアルデザイン風にしてみました。 作成にあたっ…

AndroidのプロジェクトにFacebook SDKをimportしてうまく行かなかった時のメモ

事情があってまだEclipseでも新規にプロジェクトを作ることがあります。 FacebookのSDKを使う必要があり、つまづいた時の自分用メモです。Facebook SDKは2015/07/23現在v 3.23.1です。 Facebook SDK for Android公式サイトでもEclipseで使用する方法は書いて…

2015/7 eclipseからAndroid Studioへの移行と古いgitリポジトリの移行

最近のメモです。 Android Studio1.2.2 eclipseプロジェクトをAndroid Studioにimportする 以前はeclipseでgradleのファイルをexportしていたと思いますが、今はその必要はなく Android Studio起動 File > New > Import Project. 又はwelcom画面のImport pro…

ImageViewを丸く表示するViewを作ってみた

マテリアルデザインで人物のアイコンを円形で表示するのを見かけますが、ImageViewを拡張して画像を丸く表示するViewを作りました。 既にネット上に優れたコードがあると思いますが、私のはシンプルなやつです。・楕円や角丸ではなく正円に画像をくり抜くイ…

特定の端末でhttpResponseをEntityUtils.toStringしようとするとSocketExceptionが発生した

先日発生した事象です。出先で端末をお借りしてデバッグしたのであまり追求できなかったのですが、何だこれよくわからんと思ったので、メモしておきます。現象 特定の端末(305SH)でHttp通信を行った際、レスポンスをStringにする箇所でSocketExceptionが発生…

Androidの4.3未満でCMYK形式の画像が表示できない件

先日お問い合わせがあって、ある画像だけがアプリで表示できないという現象が発生しました。 その時のメモです。表示できていない箇所はネットワーク上にある画像ファイルをImageViewで表示する箇所でした。 (正確にはNetworkImageViewというImageViewを継承…

Android Studioでimport projectしようとしたがGradle homeがセットされていなくて、”Gradle location is not specified"と怒られたときの対処法

※Android Studio 1.2 Betaでの情報です。Android Studioでimport projectしようとしてGradle homeがセットされていなくて、”Gradle location is not specified"と怒られたときにやったことのメモです。とあるライブラリをimportしようとした時に発生したので…

Androidアプリ 「インコ発信確認」をリリースしました

発信確認アプリは世の中にたくさんあるのですが、あえて!満を持して! リリースしました! インコ発信確認 - Google Play の Android アプリというわけではありません(;^ω^) メンゴメンゴちょっと空き時間に作ったものを2ヶ月ほど個人的に使用していま…

AndroidのWebViewでiFrame内のリンクをクリック時に外部ブラウザに飛ばす方法

WebViewにてURLで処理を制御する時にお馴染みですが、 WebViewClientのオブジェクトをWebViewにセットして、shouldOverrideUrlLoadingメソッドをoverrideする方法を取ります。 ですが、iFrame内のリンクをクリックした時はshouldOverrideUrlLoadingが呼ばれ…

AndroidでEventBusライブラリを使用してコンポーネント間のイベント通知をスッキリ行う

※2017/01/28追記 EventBusはバージョン3にアップデート時に大きな変更がありました。詳しくは公式サイトにて。当エントリは2.x系の記事となります。 EventBus 3 released, now based on @Annotations - Open Source by greenrobotこちらのエントリのコードを…

Androidアプリ 「インコアンインストーラー」をリリースしました

個人でAndroidアプリをリリースするのはすごく久しぶりです。 先日Androidアプリ 「インコアンインストーラー」をリリースしました。 インコアンインストーラー - Google Play の Android アプリただのアンインストーラーアプリじゃありませんYO! インコなん…

Bitmapをバイト配列としてserializeする方法

例えばBitmapのデータをSQLiteのデータベースに保存したい場合、BLOB型としてバイトデータをそのまま保存することが考えられます。cursorとやり取りするときのフィールド定義は↓こんな感じのバイト型の配列になると思います。 private byte[] icon_bitmap; …

xoomがオーバークロックで蘇った!.....かもしれなかった日記その2【復活の巻】

前回のxoomがオーバークロックで蘇った!.....かもしれなかった日記 http://d.hatena.ne.jp/sakura_bird1/20131123/1385226220 では、xoomが起動しなくなるところまでいきました。ブログを投稿し諦めモードでしたが、まだ希望はあるのかもしれないと思った夜…

xoomがオーバークロックで蘇った!.....かもしれなかった日記

オーバークロックというものに最近興味があります。 「87CLOCKERS」というマンガがあってですね。 登場人物達がPCのオーバークロックをやっているんです。 その手の話はちっともわからないのですが、ジュリアというギークな女性の 自作空冷マシンがすごくカ…

zxing 2.2にcore/core.jarと javase/javase.jarが無くてお困りの方

AndroidアプリでQRコードを使用するために、ZXing ライブラリを使いたくてZXingのダウンロードサイトからZXing-2.2.zipを落としてきて解凍したものの、 core/core.jar javase/javase.jar が入っていなくてアレレ?となりました。解決策はここに色々かいてあ…

Androidでアプリケーションの起動時に一度だけ確実に行いたい&何度も行なっては困る処理はApplicationの継承クラスで行うといい

無知でハマったので記録しておきます。 今まであまり考えもせず初期起動のActivityで一度行えば何度も行う必要のない処理を行なっていました。私がハマった実例はあるライブラリーの有効化処理でした。 この処理をランチャーから起動するActivityのonCreate(…

今度からSQLiteOpenHelperのDatabaseHelperのインスタンス取得はSingletonパターンにするよ・・・

SQLiteDatabaseLockedExceptionなるエラーが出たんですけど、 android.database.sqlite.SQLiteDatabaseLockedException java.lang.RuntimeException: An error occured while executing doInBackground() at android.support.v4.content.ModernAsyncTask$3.d…

WebViewでGeolocationを有効にする

AndroidのWebView中で位置情報を使ったコードを実行できるようにする方法のメモです。 最低限動く最小構成と思ってくださいませ。AndroidManifest.xmlに以下のパーミッションを追加する <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> WebViewの設定をする。 (略) WebSettings settings = mWebView.get</uses-permission></uses-permission>…

アプリケーションのキャッシュを削除すると、WebViewで表示した時にCSSが効かなくなるという現象について

あまりちゃんとわかっていないのだけど忘れないようにメモをしておきます。WebViewを使ったアプリを作成しているのですが、そのアプリのキャッシュを 消去すると、WebのCSSを読み込まなくなってデザインの無いWebページが表示されてしまう という現象があり…

CursorLoaderを使ってデータを読み込み、CursorAdapterをカスタマイズしたアダプターを使いListViewに表示する

以前のエントリで「ContentProvierとCursorLoaderとFragmentを使ったサンプルを作ってみた」 というものを書きました。 その時にListViewにセットしたアダプターは「SimpleCursorAdapter」という便利なクラスを利用したのですが、 リストを色々とカスタマイ…

メール送信でIntent.ACTION_SENDTOを使う際にメールアドレスがlogcatに表示されないようにする『Android アプリのセキュア設計・セキュアコーディングガイド』メモ

今JSSECさまの『Android アプリのセキュア設計・セキュアコーディングガイド』を読ませていただいているので忘れないようにメモです。 内容はリンク先を是非ともご覧くださいませ。メール送信でIntent.ACTION_SENDTOを使う際にメールアドレスがlogcatに表示…

タブのクリックイベントと変更イベント両方を取得するサンプル

自分用覚書です。 タブにTabHost.OnTabChangeListenerを実装しておいてタブをクリックすると onTabChanged(java.lang.String)メソッドが呼ばれます。 このメソッドはタブが変更された時に呼ばれるものなので同じタブを複数回クリックしても反応しません。で…

TextViewの一部にHTMLを使用する

自分用メモです。参考サイトさま :Tips TextView を使いこなそう 〜 表示編 〜 その2これでできる。 CharSequence source = Html.fromHtml(builder.toString());ソース抜粋(自分用なので見難いです) getListView().removeHeaderView(mHeaderView); Strin…

PDFを閲覧できるアプリが1つもなかった時Web上のPDFをブラウザでGoogleDocsとして開く

自分用メモです // ローカルのPDFをintentを使って開く File pathExternalDir = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS); String filepath = pathExternalDir + "/handbook.pdf"; File file = new File(filepath); if (!file.exists()) { sho…

xmlに複数の画像を配列で定義してランダムに表示させる

自分用メモです。 <resources> <array name="train_images"> <item>@drawable/train01</item> <item>@drawable/train02</item> <item>@drawable/train03</item> <item>@drawable/train04</item> <item>@drawable/train05</item> <item>@drawable/train06</item> </array> </resources> // 6…

ListViewのアダプターにデータが変更されたことを通知する

自分用メモです。更新ボタンが押されるなどしてArrayAdapter継承クラスにリストにセットする 内容が変更されたことを通知して表示を最新にする。 // 画面セットしなおし mAdapter.clear(); // データセットしなおし makeListItems(); // アダプターに通知す…

正規表現メモ2つ。テキスト中のhtmlタグを取り除く。カッコ()で囲まれた部分を取り除く。

自分用メモです。テキスト中のhtmlタグを取り除く // <br>などと入っていることがあるので半角スペースに置き換え text = text.replaceAll("<.+?>", " "); カッコ()で囲まれた部分を取り除く titleString = titleString.replaceAll("\\(.+?\\)", "");

DialogFragmentでシンプルで汎用的なダイアログ

自分用のメモです。AlertDialogをダイアログ表示処理に使っていましたが非推奨になったので DialogFragmentを使うことにしました。参考にさせていただいたサイトさま 何故DialogFragmentか Why DialogFragment can't be an inner class?DialogFragmentを継承…

よちよちAndroidの会の「炎のAndroid開発道場」本が数ヶ月前に出版されていただと・・?!

2012年9月13日に(8/20だったような気がするが本の出版日はこうなっている) よちよちAndroidの会の「炎のAndroid開発道場」が発売されました(∩´∀`)∩ワーイ炎のAndroid開発道場作者: よちよちAndroidサンデープログラミングの会初心者教育委員会出版社/メーカ…

TextViewを押した時にselectorを使って色を変える

自分用メモ。よくButtonなどで使われていますが、状態によって色調の違う画像を表示したりして、リアルにクリックした感じを演出したりしますよね。 xmlでselectorというタグを使用して、ボタンが押された時、フォーカスされた時などの 状態毎にリソースを定…

『10日でおぼえるAndroidアプリ開発入門教室 第2版 』寺園 聖文さんのご著書を読ませていただきました。

寺園 聖文さんこと @yokmama さんが上梓された 『10日でおぼえるAndroidアプリ開発入門教室 第2版 』AndroidSDK 4/3/2対応(翔泳社)をご献本いただき、読ませていただきました。10日でおぼえるAndroidアプリ開発入門教室 第2版 AndroidSDK 4/3/2対応 (10日で…