カテゴリー: Android

  • CodeLabsのbarcode scannerを試してみました。 – Firebase

    チュートリアルはこちらから。
    Detect Barcodes in an Image using Firebase MLKit

    サンプルソースにはML Kitのプロジェクトがいくつか含まれているので、
    その中から barcode-scanning/starter を適当な場所に置いて AndroidStudio で開きます。

    Nextボタンで進めていきます。

    Firebase consoleで入力するパッケージ名ですが、
    誤:com.google.firebase.codelab.barcode-scanning
    正:com.google.firebase.codelab.barcode_scanning
    のようです。

    あと appのbuild.gradle ですが、

    implementation 'com.google.firebase:firebase-ml-vision:17.0.0'
    ...
    }

    apply plugin: 'com.google.gms.google-services'
    com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

    このように disableVersionCheck = true を追加してエラーを回避しました。
    (他に正しい方法があるのかも…)

    emulatorでアプリが起動することを確認して、USBで実機を接続。
    実行すると、書籍のバーコードが読み取れました。

  • Firebase In-App Messaging API – Android Studio

    Firebase の In-App Messaging を試してみるものの、一向に表示される様子がなく…
    Android Studio の Logcat を眺めてみると、

    PERMISSION_DENIED: Firebase In-App Messaging API has not been
    used in project ??? before or it is disabled.

    のようなログがありました。

    Enable it by visiting …

    ここにあるURLを開いてみると、

    Firebase In-App Messaging API が有効になっていない?

    ということでした。
    ENABLE をクリックして、再度 Firebase console からテストを実行。
    emulatorでアプリを閉じて開きなおすとメッセージが表示されました。

  • 先日のTDDBCのおさらい – Android Studio

    先日高松で開催されたTDDBCにPHPのTAとして参加しました。
    事前の素振りがちょっと足りなかったみたいで、部分的にぎこちない説明になったかもしれません。m(..)m
    ですが、参加者の皆さんにはとても学びの多い貴重な経験になったと思います。これをきっかけにより良いプログラミングについて取り組んでいただければと思います。

    ということで(?)、TDD本を読みながらJavaでおさらいをしてみました。

    環境はAndroid Studio(3.1.3)

    確認したかったのは、コードに変更があった際のテストの自動実行(automatic rerun)。

    Toggle auto-test のボタンを有効にしますが、その前に、
    Preferences… -> Build, Execution, Deployment -> Compiler
    を開いて「Make project automatically」にチェックを入れておきます。

    これでコードを編集すると、手を止めたところで自動的に ビルド -> Test が走りました。

    以上、参考まで。

  • Android Things ハンズオン勉強会に参加しました – gdgshikoku

    GDG四国のAndroid Things ハンズオン勉強会に参加してきました。
    イベントページはこちら
    Android Things ハンズオン勉強会

    開催中の様子はこんな感じです。

    黒い箱(Android Things Kit)の中身
    https://twitter.com/kazweda/status/957107056665812993

    持参したMacBookをアダプター経由でKitのUSB-Cポートに接続
    adbコマンドが使えるようにPATH(環境変数)を追加

    講師の説明に従ってAndroid StudioでJavaのプログラムを書いていきました。

    まずはGPIO(汎用入出力)のリストを取得。
    次に、ボタンを押して、その状態を確認。
    さらに、ボタンの状態に応じてLEDを点灯・消灯。

    ここから各自でやってみましょう、ということで、
    Interact with Peripherals
    このページをみながら Blink an LED のソースをそのまま貼り付けて、LEDが点滅するところまで動作確認ができました。

    途中、build.gradleファイルの編集でモヤモヤすることもありましたが、割と簡単にデバイスが直接操作できたのでまた機会があればさわってみたいと思います。
    機材を含めイベントの準備をしていただいたGDG四国のスタッフの皆さんに感謝。

  • WARNING: HAXM 6.1.1 – Android Studio 3.0.1

    Android Thingsハンズオン勉強会があるとのことで、Android Studioのメンテナンス。
    立ち上げてみると、イベントログに赤い警告メッセージが。

    WARNING: HAXM 6.1.1 is installed. Please install HAXM >= 6.2.1 to fix compatibility issues on Mac.

    SDK Manager -> SDK Toolsを開いてみると、
    Intel x86 Emulator Accelerator (HAXM installer) 6.2.1 installed
    となっています。はて?

    調べてみると、
    [stackoverflow]Android Studio issue with HAXM
    という記事が見つかりました。

    記事に沿って Intel x86 Emulator Accelerator のチェックを外して uninstall した後、あらためてチェックしてインストール。
    Android Studio を起動し直して警告が出ないことを確認しました。

  • HUAWEI nova lite のGPSについて – バッテリー最適化

    最初に結論ですが、
    アプリ個別の設定でバッテリーの最適化を無視することで
    GPSが取れなくなるのを回避できました。
    ただし、当然のことながら電池の消耗が大きくなります。

    具体的な状況(経緯)は次の通り。

    昨年末に HUAWEI nova lite に機種変更して使っているのですが、
    PokemonGOを使っているとGPSがかなりの頻度で落ちます。

    アプリを起動して20分から1時間くらいの間に必ず位置が取れなくなったり、
    現在位置から数キロメートル離れた場所に飛ばされたりします。

    昨年末にHUAWEIのサポートに問い合わせたところ、
    「セーフモードで起動してGPSが機能するか確認してください。」
    とのこと。
    セーフモードでGoogle Mapsを数10分間試してみましたが、
    GPSは問題なく機能しています。
    ハードウェア自体は問題なさそうです。

    で、通常モードでPokemon Goを使っていて位置が取れなくなった際に、
    一旦GPSをオフにして入れ直すと復帰するので、
    そうやって使っていたのですが、それも手間なので何か解決方法はないかと調べていたところ、

    HUAWEI P9のGPS問題に関する書き込みを見つけました。
    Huawei P9 Questions & Answers -> GPS problem
    problem due to battery optimisation

    設定の手順

    1. 「設定」を開く

    2. 「アプリ」を開いて一覧の下の方にある「設定」を開く

    3. 「アプリの設定」で「特別なアクセス」を開く

    4. 「バッテリー最適化を無視」を開く

    5. 「許可」をタップして「すべてのアプリ」を選択

    6. 「Pokemon GO」をタップして「許可」を選択して「OK」

    以上です。
    この設定で1時間ほど試しましたが、これまでのように位置情報を見失うことなく継続して利用できました。
    ただし、バッテリーの消耗が大きくなったので、GPSを取るか、バッテリーを取るかという判断になると思います。

  • Androidで画面のキャスト – Fire TV Stick

    今年(2016)の春にFire TV Stickを購入して、オンデマンドの番組を視聴しています。

    このFire TV Stickを使ってオンラインでお手軽にニュースを見ようとすると、NHK World TV(英語)アプリを使うかYoutubeでニュースカテゴリをあさるくらい。しかも、Youtubeの場合はニュースが断片的にアップされていて、都度CMが流れたり、少し前の再生済みのニュースをまた再生したりと、結構不便です。そこで、もう少しニュースをまとめて効率よく視聴することはできないかと調べたところ、AbemaTVアプリ(Android)が見つかりました。といっても、これをFire TV Stickにインストールするわけではなくて、Androidのスマホから画面のキャストで視聴します。

    ※AbemaTVアプリをFire TVにインストールする方法もあるようです。検索してみてください。

    ここで、Fire TV Stickの「ディスプレイミラーリング」機能を使うわけですが、何度かは使えたものの、その後つながらなくなったのでしばらく放置していました。
    ※ちなみに、Youtubeアプリ(Android)からのFire TVへの画面のキャストは難なくつながります。

    Amazon Fire TVのディスプレイミラーリングを使用する

    これでつないだ後で切断すると、次からつながらなくなる症状があります。
    そこで、これまでに実施したこと。

    1. Fire TV Stickの工場出荷時の設定にリセット
      設定 -> システム -> 工場出荷時の設定にリセット
    2. Wi-Fiの接続を2.4GHzに揃える
    3. Android端末のWi-Fi Directの接続履歴を削除
      設定 -> Wi-Fi -> 詳細設定 -> Wi-Fi Direct -> 接続履歴のあるグループ
    4. キャストの「詳細設定」でデバイスを選択して接続

    そして、接続操作ですが、Fire TV Stick側で、
    設定 > ディスプレイとサウンド > ディスプレイミラーリングを有効にする
    を選択しておいて、Android端末でキャストを開きます。

    画面のキャスト
    画面のキャスト

    ここでFireTV端末が見つかればそれをタップします。
    キャストの接続先
    キャストの接続先

    ここで「利用可能なデバイスがありません」と表示されたり、そのままではつながらない場合がありますので、詳細設定を開きます。
    ※Androidの 「設定 -> ディスプレイ -> キャスト」 で開くと直接、詳細設定の画面になります。
    キャストの詳細画面
    キャストの詳細画面

    この状態で見えているデバイスをタップすると接続できます。

    • 端末の種類や接続環境によって接続できない場合もあると思いますが、参考になれば幸いです。

      利用環境

      • Fire TV Stick
        Fire OS 5.2.1.0(550145120)
      • Nexus 5
        Android 6.0.1
  • Gradle build error on Android Studio 0.5.2

    しばらくぶりに Android Studio を使ってみようと思い、あらためてインストール。

    新規プロジェクトを作成しようとすると
    Messages Gradle tasks に

    Error:Execution failed for task ':app:preBuild'.
    > Build Tools Revision 19.0.0+ is required.
    

    のエラー。

    ちなみに、Tools -> Android -> SDK Manager
    menu-sdk-manager
    を開いてUpdateを実行して、Build-tools 19.0.3 がインストールされているのは確認済み。

    いろいろ調べたところ、
    http://stackoverflow.com/questions/22247548/upgraded-android-studio-project-no-longer-builds-gradle-build-tools-version
    このような記事があったので、これを参考に、
    appフォルダ内の build.gradle を編集。

    [before edit]

    android {
        compileSdkVersion 18
        buildToolsVersion "18.0.1"
    ...
    

    [after edit]

    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.3"
    ...
    

    このようにするとビルドできました。

    【追記】2014.04.01
    3月27日付けでAndroid Studio 0.5.3 がリリースされていました。
    アップデートして、あらたにプロジェクトを作成したところ、デバッグ実行で特にエラーもなくHello Worldの表示ができました。