PopupMenuのメニューを表示する位置がリスナーを設定したオブジェクトの左下または右下です。メニューのアイテムの間隔が広く、メニュー操作の対象がわかりにくい。PopupMenuの表示位置とメニューの間隔を調整する実装方法を紹介します
老後は「余生」ではなく、「セカンドライフ」。そんな生き方に挑戦する元ITエンジニアのブログです。
某ITベンダーを早期退職。現在、フリーランスのエンジニアとして、日々アプリ開発に奮闘中です(^^♪ クルマとアニメとラノベが大好きなナイスミドルです♪
PopupMenuのメニューを表示する位置がリスナーを設定したオブジェクトの左下または右下です。メニューのアイテムの間隔が広く、メニュー操作の対象がわかりにくい。PopupMenuの表示位置とメニューの間隔を調整する実装方法を紹介します
ブレーキペダルの位置は調整できますが、アクセルペダルの位置は調整できないことが多い。ブレーキペダルの位置の調整は、遊びとストロークに影響がでるため、ブレーキペダルはベストな位置に調整して、アクセルペダルの位置を調整する方法をオススメします
Google社より「ご対応のお願い: GooglePlayのポリシーをアプリが遵守していません」といったタイトルのメールが届き、リリースが否承認となりました。ポリシー違反を特定する方法と対処から、ポリシー違反の解消までの流れを説明します
Android14対応(非推奨のoverridePendingTransition)
overridePendingTransitionは予測型「戻る」アニメーションのサポートに伴い、Android14から非推奨です。非推奨のoverridePendingTransitionをAndroid14以降に対応する実装方法を紹介
Exoplayerで音楽の再生をコントールする場合、PlayerControlViewを使用します。PlayerControlViewで音楽の再生や一時停止などを操作するための標準コントローラのアイコンを変更する方法を紹介します
USB接続GPSレシーバはなんといっても価格が安いのでロガーアプリをお試しで利用したい人におススメです。Bluetoothのように電波干渉で通信が不安定になることがありませんが、USB入力を使用するため使用中は充電できない欠点があります。
AndroidのUSBシリアル通信は、USBデバイスの接続はUSBホストAPI、シリアル通信はusb-serial-for-androidを使えば、簡単に実装できます。USBシリアル通信の実装について、サンプルコードを交えて、説明します
GPSレシーバなどのUSBデバイスを使用する場合、接続やデバイス名などのメタ情報の取得には不要ですが、アクセスには権限チェックとユーザ承認が必要です。USBデバイスのアクセスに必要な権限チェックとユーザ承認リクエストの実装を紹介します
デバイス間の通信では数値データをリトルエンディアンで扱うことが多い。リトルエンディアンとはバイト単位に分解された数値データを最下位のバイトから順番に格納していく方式です。数値データをリトルエンディアンで文字列データに変換する方法を紹介します
Bluetooth機器との接続には、機器固有のMACアドレスが必要です。デバイスのMACアドレスを取得する方法としては、デバイスから定期的に発信されるビーコンから取得する方法、デバイスとのペアリング情報から取得する方法などがあります
仮想デバイス(Android Virtual Device)で動作させるとExceptionが発生してアプリが終了することがあります。実行しているデバイスが仮想デバイスか判定して回避する方法を紹介します
アプリで動画をコマ送りで再生する場合、動画ファイルのフレームレートの値が必要です。動画ファイルのフレームレートを取得する方法として、ExoPlayerのAnalyticsListenerを使用して、フレームレートを取得する方法を紹介します
ジムカーナ練習会では、全体のタイムよりも自身の課題をもとに、コースをいくつかの区間にわけて、区間毎のタイムを確認しながら練習する方法が有効です。ジムカーナ練習会でアプリとGPSロガーを使って、区間毎のタイムを簡単に計測する方法を紹介します
問題が見つかりました。 誤解を与える表現に関するポリシーへの違反
Google社より「ご対応のお願い: GooglePlayのポリシーをアプリが遵守していません」といったタイトルのメールが届き、リリースが否承認となりました。ポリシー違反を特定する方法と対処から、ポリシー違反の解消までの流れを説明します
ItemTouchHelperのスワイプ操作をアイテムの削除とした場合は問題ありませんが、アイテムの選択と画面遷移とする場合に違和感があります。スワイプ操作でアイテムがリストから消滅しない、アイテムの選択と画面を遷移する実装を紹介します
日時をデータ管理する場合、long型日時が有効ですが、日時をインタフェースで受け取る場合、String型日時であることが多い。GPS受信機の標準インタフェースNMEAフォーマットのString日時を、long型日時に変換する方法を紹介します
アプリに対応していないGPSロガーの利用や位置情報を扱うアプリの開発やテストの際にNMEAフォーマットのGPSデータを疑似ロケーションすることで、GPSから位置情報を受信することなく、位置の移動をシミュレーションするサービス型アプリです
フロアジャッキは梃子の原理と油圧で動作しています。フロアジャッキで一番多い故障がオイル漏れです。オイル漏れの原因はOリングの劣化で負荷のかかるメインピストンは2~3年でダメになります。メインピストンのOリングを交換する方法を紹介します。
退職後も加入していた健康保険の任意継続の期間満了(最大2年間)となり、国民健康保険に加入しました。任意継続から、国民健康保険に加入する際に必要な書類やその入出方法、手続きの時期などを詳しく説明します。
Viewの背景(background)を修飾するshape要素(drawable)には、ストローク線(stroke)の色をグラデーションにすることはできません。layer-list要素を使用して枠線の色をグラデーションにする方法を紹介します
Spinnerのドロップダウンでナビゲーションバーを表示させない
全画面モードでシステムバー(ナビゲーションバーやステータスバー)を非表示にしていても、Spinnerのドロップダウンでシステムバーが表示されます。この現象を回避するシステムバーを非表示にするカスタムSpinnerの実装方法を紹介します
Roomのマイグレーションでは変更前テーブルのスキーマ情報が必要です。変更前テーブルのスキーマ情報がない状態でマイグレーションするとマイグレーションが失敗します。exportSchema=falseでマイグレーションする方法を紹介します
RoomはオープンソースデータベースSQLiteを抽象化レイヤとして提供するライブラリです。データベースの操作や定義、SQLの実行など、SQLiteを最大限に活用することが可能です。Roomの導入から使用方法をソースを参考に説明します
次の項目で問題が見つかりました。 権限の使用が申告されていないか、 間違って申告されています
Google社より「ご対応のお願い: GooglePlayのポリシーをアプリが遵守していません」といったタイトルのメールが届き、リリースが否承認となりました。ポリシー違反を特定する方法と対処から、ポリシー違反の解消までの流れを説明します
2つの動画を再生位置を合わせ・並べて・同時に再生する動画再生アプリ(Duel)を使って、ライバルと比較、外撮りと車載の比較、過去の自分と比較について、比較する目的や確認するポイントから、比較する内容に適したアプリの使用方法を説明します
Androidスマホは、MP4形式しか動画ファイルは再生できません。Android13から、Apple標準オーディオ形式の音楽ファイルが再生できなくなっています。FFmpegでMP形式に変換して、Androidで再生する方法を紹介します
ConoHaのレンタルサーバの基本サービスで毎日バックアップが取得していますが、WordPressのデータの一部だけリストアすることができません。WordPressの一部のファイルだけ復元できるバックアップを無料で構築する方法を紹介します
選択できる機能メニューの数が多い場合、メニューを階層化して表示することはユーザビリティの向上として有効な手段です。ActionMenuViewを使用したメニューでSubMenuを使用したメニューを階層化の実装方法について、説明します
フルード交換は基本的に、二人一組。ブレーキを踏む人、キャリパーのエアブリーダーを開け閉めする人。そんなブレーキフルードのエア抜きも、工夫次第で特殊な工具も必要なく、"ひとり"で"簡単"にできる方法とクラッチフルードの交換方法を紹介します。
散布図は実験結果などのエビデンスでよく用いられるグラフですが、2つの軸をX軸とY軸と捉えると、平面図の描画への応用が可能です。MPAndroidChartのScatterChartを使用して、散布図の特長を生かしたGUIを紹介します
円グラフはデータ全体の「内訳」を円の角度で表現するグラフで、折れ線グラフや棒グラフほど使用する機会はありません。円グラフの特長を生かした簡単なGUIを、MPAndroidChartのPieChartを使用して実装します。
エンジンに悪影響があるチリ、ほこり、砂などをブロックしているのがエアフィルターです。エアフィルターには、使い捨てのものから、洗浄して再利用できるものがあります。再利用できる湿式エアフィルターのメンテナンス方法について説明します。
MPAndroidChartの折れ線グラフは特性上、グラフ線が見やすくするために背景が白色です。このため、折れ線フラフの後ろのレイヤーにオブジェクトを配置すると背景に隠れて見えなくなります。グラフ線の背景を透過させる方法を説明します
Androidのナビゲーションバーには標準で戻るボタンが配置されています。前の画面に戻るためのボタンですが、アプリ側で処理を記述する必要があります。タブレイアウトの画面遷移で戻るボタンによるヒストリーバック機能の実装方法を紹介します
標準のアプリ画面では上側にステータスバー、下側(横画面では右側)にナビゲーションバーが表示されます。動画や画像、ゲームなどのコンテンツでは、全画面で表示したくなる場面があります。システムバーを非表示や透明化した全画面表示の方法を紹介します
ジョイント部分が破損したドライブシャフト、ジョイントを交換するだけで再使用できます。ブーツが破けてグリスが漏れている場合もあります。残念ながら、この状態では車検に通りません。ドライブシャフトのアウタージョイントを交換する方法を説明します
個人データを扱うアプリを欧州経済領域と英国に配信する場合はGDPR対応は必須ですが、個人データを扱っていなくてもAdMobやFirebaseを使用しているアプリでアプリの配信先に欧州経済領域と英国が含まれている場合はGDPR対応が必要です
Android14対応<br>(非推奨のCriteriaの対応)
CriteriaクラスはAndroidアプリで位置情報を扱うときに使用します。精度、電力使用量などに基づいて、最適な位置プロバイダを選択します。しかし、Android14では、Criteria クラスが非推奨となり、代替クラスもない状況です
Android14対応 (フォアグラウンドサービスタイプは必須)
Android14のコア機能の変更のひとつ「フォアグラウンドサービスタイプは必須」に対応していないアプリは、フォアグラウンドサービスを起動したときにアプリが落ちます。フォアグラウンドサービスタイプは必須の対応方法について、紹介します
Android14対応(非推奨のonBackPressed)
これまで戻るボタンの処理は、onBackPressedに記述していました。onBackPressedはAndroid13から非推奨、Android14から使用不可になりました。Android14での戻るボタンの処理の実装を紹介します
ExoPlayerは音声や動画のローカル再生のほか、DASH、SmoothStreamingなど、MediaPlayerではサポートされていない機能があります。Media3のExoPlayerを使用して、動画や音楽を再生する方法を紹介します
Spinnerは前回選択したアイテムと同じアイテムを選択した場合、onItemSelectedのイベントが発生しません。アイテム選択時に前回と同じアイテムであっても選択を検知できるCustomSpinerを実装する方法を紹介いたします
動画からのサムネイルの作成方法は、サムネイルユーティリティで動画ファイルからサムネイル用のBitmapを取得し、ファイル出力します。作成対象の動画ファイルが多い場合は、処理に時間がかかるので、作成済みの動画は再作成しないなどの工夫が必要です
Duelは動画で"ライバルとの差を可視化する"コラージュアプリです。スマホやタブレットにある動画ファイルにチャプタを設定して、画面尿に2つの動画を並べてシンクロ再生、スロー再生でどこで差がついか、操作と動作を確認、どう変化したか確認します。
画面が回転する際、画面が再起動します。ダイアログを表示中に再起動が発生すると、アプリがクラッシュします。タブレットでは本体側の設定(画面の自動回転)が優先され、アプリで画面の向きが固定できません。タブレットでは画面の回転の対応が必須です。
Androidで日本語を含むデータを出力したファイルをWidowsで読み込むと文字化けします。文字コードがAndroidがUTF-8でWidowsがShift_JISだからです。AndroidでShift_JISに変換する方法を説明します。
WSAを使用すれば、Androidスマホがなくても、Windows 11のPCさえあれば、Androidネイティブアプリを動作させることが可能になります。Windows 11でAndroidアプリを実行する方法について、紹介します。
TextToSpeech は、テキストから音声合成して、再生や音声ファイルを作成できるライブラリです。画面上に通知メッセージをテキスト出力する感覚で、テキストを指定して音声で案内することが可能となります。実用的な音声案内の実装を説明します
DIYなら、エンジンを停止して数日経った状態でオイル交換することが可能です。オイルが冷えている状態で、汚れを含めて、オイルパンに十分に落ちていることが期待できます。同時にオイルフィルタを交換すると、無駄にオイルで汚れることなく交換できます
確定申告で必要な『仕訳』をスマホで簡単らくらく登録。登録した仕訳データを会計ソフトに取り込んで使う、確定申告サポートアプリです。登録している伝票(取引の仕訳)を選んで、金額を入力するだけで、計上・決済・手数料の仕訳を一度に登録できます。
DialogFragmentはユーザーによる意思決定や追加情報の入力を求める小さなウィンドウを想定しているため、通常の使用方法では、画面サイズいっぱいに表示することができません。ここでは画面サイズいっぱいに表示する方法について、紹介します。
練習しても成績が伸びない、あれこれと足掻けば足掻くほどに成績が落ちてきて、モチベーションが下がってきている人におススメする、GPSロガーとアプリを使った、いろいろな運転操作を試す、セッティングの良し悪し確認する区間タイムの計測方法を紹介します
タイヤチェンジャーを使わず、扁平タイヤ(ロープロファイル)やスポーツタイヤはタイヤレバーの手組みでは無理な作業です。小型でアンカー設置が不要、部屋でも作業できる手動式タイヤチェンジャーを使って、スポーツタイヤの組み換えする手順を紹介します
GPSの位置情報を使ってタイムを計測する方法はお手軽な反面、GPSの特性を知らずにタイムを計測した場合、光電管と比べて、計測ミスや精度がイマイチで使い物にならないといったことをよく聞きます。GPSの特性を考慮したタイムを計測する方法を紹介します
Andorid アプリの開発で、画像を表示する際に使用する ImageView。表示したイメージの四隅のカドが気になります。CardView を使って、ImageView で表示するイメージの四隅のカドを丸く表示する方法について、紹介します
TextViewを使用する上で、困りごとのひとつとして、文字列全体が入りきらないケースがあります。文字列全体が入りきらないケースの対応として、文字列をスクロール表示させて、文字列全体を見せる、簡単で便利な実装方法について、紹介します
スマホのカメラで撮影した画像を SNS に投稿する、SNS の一般的な使い方です。アプリの機能として、現在表示している画面のスクリーンショットの取得して、取得した画像を、直接 SNS に投稿する機能の実装方法について、紹介します。
自宅のネットワークで発生したDHCPのリース可能なIPアドレスの枯渇、見知らぬ機器の接続、インターネットが遅い、自宅ネットワーク内の通信が遅いなど、その原因をひとつひとつひも解いて、快適でセキュアなWi-Fi環境を構築する方法を説明します
配列(ArrayList、List)にセットしているデータの並び替え(ソート)や、ランダムで並び替え(シャッフル)、重複しているデータを配列から排除(重複排除)が必要な場合に、コーディングが少なく簡単で便利な実装方法について紹介します
リスト一覧から選択後にListViewを再表示させた場合、スクロール位置がリセットされます。選択の度にスクロール位置がリセットされると、操作性が著しく低下します。スクロール位置を保持して状態で、ListViewを再表示する仕組みを実装します
360度ターンの失敗の原因がターンの回転半径に対して速度が高かったことでしたが、グリップの違うタイヤであったり、路温が低い、雨で滑りやすかったなど、失敗として顕在化する状況は様々です。失敗の原因を知り、状況と合わせて、記録することが重要です
同じようなタイムで、その走行内容に差がないと思われた走行にも、実はプラス・マイナスの差で隠れた差があります。その差を見つけるのに、ゴーストモーション再生は有効な手段のひとつです。車載動画の同期再生でその差の原因を見つけることができます。
車載動画のメリットは、自分1人で撮影できることです。練習会などで自身で撮影し、その時の運転を振り返ることができます。デメリットは、走行全体を客観的に俯瞰してみることができないことです。車載動画をGPSロガーと連動させて走行全体を俯瞰して見る方法を紹介します。
Android13 の新しいメディアコントロールを使用するにはメディアアプリのアーキテクチャに準ずる必要があり、動画や音楽を扱う場合に使用する ExoPlayer を使ったアプリはMedia3 のメディアセッションに対応する必要があります
Android13からアプリから通知を送信する場合に実行時の通知権限POST_NOTIFICATIONSが導入されました。通知にアクションを設定・操作するアプリは、追加された権限がないと通知が表示されず、通知からの操作ができなくなります
Android13では、アプリがメディアストアを使用して画像や写真、動画、音声ファイルを使用する場合、新しく追加されたの権限をマニフェストファイルに追加するのと、その権限についてユーザー承認をリクエストして、許可がないとアクセスできません
ハンチング(回転数が上がったり、下がったりと不安定)している状態を放置していると、アイドリングできなくなり、常時アクセルを踏んで、回転数を上げないとエンストするようになります。ハンチングの症状が出たら、EACVを洗浄することをおススメします
MPAndroidChartのBarChart(棒グラフ)は注意すべき点があり、棒グラフの棒の太さに関する設定がないので、X軸の値を連番にする必要があります。グラフに表示する棒の数と、X値と隣り合うX値との差の割合が、棒の太さになっています
入力キーボードを閉じずにダイアログの枠外タップして、ダイアログを閉じると、画面項目が切れる現象が発生します。ダイアログの枠外タップを検知して、ダイアログを閉じる前にキーボードを閉じるコードを追加することで、画面項目が切れる現象を回避できます
ウォーキングや読書など今日すること(タスク)の距離や時間をカウントして、経過をカウントダウンで表示・音声で案内します。カウントダウン中にスマホにある音楽ファイルを再生したり、タスクのひな型をToDoとして、登録・管理することができます
ドライブシャフトの交換は交換を経験していない人からすると難しい作業に思えますが、工具とコツさえわかれば思いのほか簡単です。今回はB型エンジンのジビックやインテグラのドライブシャフト交換を例に簡単で楽に交換できる方法を説明します
TextViewで表示する文字を標準フォント以外のカスタムフォントを使用したり、標準では単色しか指定できない文字の色をグラデーション表示するなど、リッチなTextViewの実装を説明します。
どんなスポーツにも「型」というものがあります。コーナリングを4つのゾーンに分けて、各ゾーンにおけるクルマの操作と動きを「型」と表現する。8の字を練習するのはコーナリングの方向を一度に両方できるから、自分の「型」を確認したり、磨くのに最適 です
本革製スマホケースの本革とプラスチックは接着する場合の組み合わせとして相性が最悪で瞬間接着剤、革専用ボンドではくっつきません。2液性のエポキシ系接着剤を使えば、本革のカバーとスマホを固定するプラスチックの剥がれを修理できます
MP3ファイルなどの音楽ファイルには、アーティスト、アルバム名、ジャンルなどのメタデータが含まれています。このメタデータにアルバムジャケットなどの画像データが含まれている場合に画像データをImageViewに表示する方法を説明します
動画インタラクティブ広告は、動画を再生する広告です。アプリ画面の一部として表示するバナー広告と違って、アプリ利用者の利便性を下げる可能性がありますが、バナー広告に比べて、クリック率が高い傾向にあり、収益の向上に期待がもてるようになります
ListView の表示できる行数を指定することができないため、件数が多いと表示領域が画面全体に及んだり、逆に少ない場合は、空白の表示領域ができます。表示できる行数を指定できる ListView の実装方法について、説明します。
スマホ内蔵GPSの精度がイマイチということで、個人で購入できる高性能GPSロガーの双璧をなすDG-PRO1(GPSレシーバ)とデジスパイスⅣ(GSPロガー)を使用して、それぞれで記録した走行データをGPS走行解析アプリで比較、検証します。
ジムカーナのサイドターンでは、片手でステアリングを素早く回す必要があります。滑りやすいステアリングでは上級者であってもサイドターンの成功率が下がります。ステアリングにグリップテープを巻いて、安くて、簡単に強力グリップに手に入れましょう。
RecyclerViewの並び替えと追加&削除 (Drag&Swipe)
RecyclerViewはViewを破棄せず、再利用する特徴から、実装する上で、予期しない動きに嵌ることがあります。RecyclerViewでアイテムの並び替えと削除を実装した際に嵌った予期しない動きの対処について、説明します。
MPAndroidChartは、Andoroidアプリでさまざまなグラフを扱うことが可能なオープンソースライブラリです。折れ線グラフ(LineChart)にフォーカスを当てて、開発したアプリのソースを参考に、使用方法を説明したいと思います。
次の項目で問題が見つかりました。SPLIT_BUNDLE33混乱させる広告に関するポリシー について
ご対応のお願い: Google Playのポリシーをアプリが遵守していません。次の項目で問題が見つかりました。SPLIT_BUNDLE33 混乱させる広告に関するポリシー というメールを受け取ったときの対処方法について説明します
乾燥パスタを水に浸して2時間ほど放置するだけで、生パスタのようなモチモチ触感のパスタを体験できます。水で戻したパスタは茹でる時間を大幅に短縮できます。お手軽・時短・簡単・安い・おいしい和風ペペロンチーノを是非お試しください♪
地域タグ:東淀川区
クルマを使ったスポーツの行き着くところはタイムです。コンマ1秒の差を知り、対策をすることで速くなる。それがGPSロガーアプリを使って速くなるアプローチです。GPSデータのどこを見たら、いいの?その答えのひとつがゴーストモーション再生です。
不意に訪れるタイヤのパンク!?タイヤに溝があって、まだ使えるのに、、、やっぱり、もう片方も交換しないといけないの?もう少しだけ使いたい、そういう場合は、DIY で修理しちゃいましょう♪簡単にできるタイヤのパンク修理の方法を説明します。
地域タグ:東淀川区
インタースティシャル広告はアプリの利用者の利便性を下げる可能性がありますが、バナー広告に比べて、クリック率が高い傾向にあり、収益の向上に期待できます。バナー広告が実装済みであれば、ひと手間加えるだけでインタースティシャル広告が実装できます。
位置情報の更新をリクエストするrequestLocationUpdatesメソッドに、従来はcreateメソッドでLocationRequestを生成していましたが、create メソッドが非推奨になったため、Builderメソッドで実装する必要があります
AndroidアプリからPDFを作成するのに、特別なJavaPDFライブラリは必要ありません。AndroidAPIのPdfDocumentクラスを使用して、Androidアプリから簡単にPDFを作成する方法を説明します。
タイヤの最大グリップをコーナリングのみに使っている状態が、理想的な定常円です。加速、減速もない等速を維持するアクセルワークと回転半径を維持するステアリングワークが必要とされる定常円で、旋回中のギア選択でタイム差がどの程度あるか検証します
スプリング変更や車高調整など、足回りを変更すると、アライメントは変化します。また、アライメントを変更することで、ステアリング特性を変化させることが可能です。MAPLE A-ONE GAGEを使用して、DIYでアライメント測定する方法を説明します
地域タグ:東淀川区
音声ボリュームの調整など設定値を増減するようなGUI操作では、数値を入力させるのではなく、スライダーを左右に動かす操作のほうが、利便性がよくなります。SeekBarを使用して、AndroidアプリにGUIスライダーを実装する方法を説明します
パイロンジムカーナでよくあるパイロン2本のコーナリングで1速で最短コースをトレースするライン、2速でコーナリング区間の速度を上げるライン、どちらが速いのか、どれぐらいタイム差があるか、GPSロガーの走行データを使って、分析したいと思います。
安全上、ブレーキは4輪ともに正常に機能することが重要です。ブレーキパッドを交換してもブレーキバランスが改善しない場合、ブレーキパッドとブレーキローターの同時交換をがおすすめです。DIYでブレーキローターを交換する際の注意点と手順を説明します
乾燥パスタを水に浸して2時間ほど放置するだけで、生パスタのようなモチモチ触感のパスタを体験できます。水で戻したパスタは茹でる時間を大幅に短縮できます。お手軽・時短・簡単・安い・おいしいマルガリータパスタを是非お試しください♪
地域タグ:東淀川区
全体のタイム差はリザルトで確認できますが、そのタイム差がどの区間でついたものなのかはわかりません。実際のGPSロガーの走行データを使って、タイム差があった区間の特定から、分析グラフでタイム差がどこでついたか確認する方法を説明します。
RAYS製のホワイトのCE28N。これまでの扱いが悪かったせいか、黄ばみが酷く、あまりにみすぼらしいので使わず放置。鍛造で非常に軽量にできているのので、使わないのはもったいないということで、DIYでホイールペイントして復活させました。
地域タグ:東淀川区
スマホだけで簡単に使えるGPSロガーアプリとして、開発したGPS走行記録アプリ(Archive)ですが、お手軽な反面、その精度はどうなの?GPS走行解析アプリ(Archive oro)をスマホ内蔵GPSとGPSレシーバのそれぞれで記録した走行データを比較しました
フルパイロンコースの特徴として、走行ラインを比較的自由にとれるため、どのラインが正解(速い)かの見極めが難しい。距離をとるか、速度をとるかなど走り方の違いが、どの程度タイムに影響があるか検証しました。
樹脂製のヘッドライトは、屋根付きの車庫でこまめに洗車していても、2年ほどで経年劣化で黄ばみ・くすみが発生します。コンパウンドと専用のコート剤を使えば、磨いて、コーティングするだけでDIYでも簡単にヘッドライトをキレイにする方法を紹介します
地域タグ:東淀川区
名阪CコースのS字コーナーのようにS字区間内が短い場合、進入のブレーキングが特に重要で、区間内の速度を高くするためのラインを考える必要があります。GPSロガーの走行データを使用して、区間タイム、ブレーキング、走行ラインを比較して違いを検証する
「ブログリーダー」を活用して、まっさんさんをフォローしませんか?
PopupMenuのメニューを表示する位置がリスナーを設定したオブジェクトの左下または右下です。メニューのアイテムの間隔が広く、メニュー操作の対象がわかりにくい。PopupMenuの表示位置とメニューの間隔を調整する実装方法を紹介します
ブレーキペダルの位置は調整できますが、アクセルペダルの位置は調整できないことが多い。ブレーキペダルの位置の調整は、遊びとストロークに影響がでるため、ブレーキペダルはベストな位置に調整して、アクセルペダルの位置を調整する方法をオススメします
Google社より「ご対応のお願い: GooglePlayのポリシーをアプリが遵守していません」といったタイトルのメールが届き、リリースが否承認となりました。ポリシー違反を特定する方法と対処から、ポリシー違反の解消までの流れを説明します
overridePendingTransitionは予測型「戻る」アニメーションのサポートに伴い、Android14から非推奨です。非推奨のoverridePendingTransitionをAndroid14以降に対応する実装方法を紹介
Exoplayerで音楽の再生をコントールする場合、PlayerControlViewを使用します。PlayerControlViewで音楽の再生や一時停止などを操作するための標準コントローラのアイコンを変更する方法を紹介します
USB接続GPSレシーバはなんといっても価格が安いのでロガーアプリをお試しで利用したい人におススメです。Bluetoothのように電波干渉で通信が不安定になることがありませんが、USB入力を使用するため使用中は充電できない欠点があります。
AndroidのUSBシリアル通信は、USBデバイスの接続はUSBホストAPI、シリアル通信はusb-serial-for-androidを使えば、簡単に実装できます。USBシリアル通信の実装について、サンプルコードを交えて、説明します
GPSレシーバなどのUSBデバイスを使用する場合、接続やデバイス名などのメタ情報の取得には不要ですが、アクセスには権限チェックとユーザ承認が必要です。USBデバイスのアクセスに必要な権限チェックとユーザ承認リクエストの実装を紹介します
デバイス間の通信では数値データをリトルエンディアンで扱うことが多い。リトルエンディアンとはバイト単位に分解された数値データを最下位のバイトから順番に格納していく方式です。数値データをリトルエンディアンで文字列データに変換する方法を紹介します
Bluetooth機器との接続には、機器固有のMACアドレスが必要です。デバイスのMACアドレスを取得する方法としては、デバイスから定期的に発信されるビーコンから取得する方法、デバイスとのペアリング情報から取得する方法などがあります
仮想デバイス(Android Virtual Device)で動作させるとExceptionが発生してアプリが終了することがあります。実行しているデバイスが仮想デバイスか判定して回避する方法を紹介します
アプリで動画をコマ送りで再生する場合、動画ファイルのフレームレートの値が必要です。動画ファイルのフレームレートを取得する方法として、ExoPlayerのAnalyticsListenerを使用して、フレームレートを取得する方法を紹介します
ジムカーナ練習会では、全体のタイムよりも自身の課題をもとに、コースをいくつかの区間にわけて、区間毎のタイムを確認しながら練習する方法が有効です。ジムカーナ練習会でアプリとGPSロガーを使って、区間毎のタイムを簡単に計測する方法を紹介します
Google社より「ご対応のお願い: GooglePlayのポリシーをアプリが遵守していません」といったタイトルのメールが届き、リリースが否承認となりました。ポリシー違反を特定する方法と対処から、ポリシー違反の解消までの流れを説明します
ItemTouchHelperのスワイプ操作をアイテムの削除とした場合は問題ありませんが、アイテムの選択と画面遷移とする場合に違和感があります。スワイプ操作でアイテムがリストから消滅しない、アイテムの選択と画面を遷移する実装を紹介します
日時をデータ管理する場合、long型日時が有効ですが、日時をインタフェースで受け取る場合、String型日時であることが多い。GPS受信機の標準インタフェースNMEAフォーマットのString日時を、long型日時に変換する方法を紹介します
アプリに対応していないGPSロガーの利用や位置情報を扱うアプリの開発やテストの際にNMEAフォーマットのGPSデータを疑似ロケーションすることで、GPSから位置情報を受信することなく、位置の移動をシミュレーションするサービス型アプリです
フロアジャッキは梃子の原理と油圧で動作しています。フロアジャッキで一番多い故障がオイル漏れです。オイル漏れの原因はOリングの劣化で負荷のかかるメインピストンは2~3年でダメになります。メインピストンのOリングを交換する方法を紹介します。
退職後も加入していた健康保険の任意継続の期間満了(最大2年間)となり、国民健康保険に加入しました。任意継続から、国民健康保険に加入する際に必要な書類やその入出方法、手続きの時期などを詳しく説明します。
Viewの背景(background)を修飾するshape要素(drawable)には、ストローク線(stroke)の色をグラデーションにすることはできません。layer-list要素を使用して枠線の色をグラデーションにする方法を紹介します
Androidのナビゲーションバーには標準で戻るボタンが配置されています。前の画面に戻るためのボタンですが、アプリ側で処理を記述する必要があります。タブレイアウトの画面遷移で戻るボタンによるヒストリーバック機能の実装方法を紹介します
標準のアプリ画面では上側にステータスバー、下側(横画面では右側)にナビゲーションバーが表示されます。動画や画像、ゲームなどのコンテンツでは、全画面で表示したくなる場面があります。システムバーを非表示や透明化した全画面表示の方法を紹介します
ジョイント部分が破損したドライブシャフト、ジョイントを交換するだけで再使用できます。ブーツが破けてグリスが漏れている場合もあります。残念ながら、この状態では車検に通りません。ドライブシャフトのアウタージョイントを交換する方法を説明します
個人データを扱うアプリを欧州経済領域と英国に配信する場合はGDPR対応は必須ですが、個人データを扱っていなくてもAdMobやFirebaseを使用しているアプリでアプリの配信先に欧州経済領域と英国が含まれている場合はGDPR対応が必要です
CriteriaクラスはAndroidアプリで位置情報を扱うときに使用します。精度、電力使用量などに基づいて、最適な位置プロバイダを選択します。しかし、Android14では、Criteria クラスが非推奨となり、代替クラスもない状況です
Android14のコア機能の変更のひとつ「フォアグラウンドサービスタイプは必須」に対応していないアプリは、フォアグラウンドサービスを起動したときにアプリが落ちます。フォアグラウンドサービスタイプは必須の対応方法について、紹介します
これまで戻るボタンの処理は、onBackPressedに記述していました。onBackPressedはAndroid13から非推奨、Android14から使用不可になりました。Android14での戻るボタンの処理の実装を紹介します
ExoPlayerは音声や動画のローカル再生のほか、DASH、SmoothStreamingなど、MediaPlayerではサポートされていない機能があります。Media3のExoPlayerを使用して、動画や音楽を再生する方法を紹介します
Spinnerは前回選択したアイテムと同じアイテムを選択した場合、onItemSelectedのイベントが発生しません。アイテム選択時に前回と同じアイテムであっても選択を検知できるCustomSpinerを実装する方法を紹介いたします
動画からのサムネイルの作成方法は、サムネイルユーティリティで動画ファイルからサムネイル用のBitmapを取得し、ファイル出力します。作成対象の動画ファイルが多い場合は、処理に時間がかかるので、作成済みの動画は再作成しないなどの工夫が必要です
Duelは動画で"ライバルとの差を可視化する"コラージュアプリです。スマホやタブレットにある動画ファイルにチャプタを設定して、画面尿に2つの動画を並べてシンクロ再生、スロー再生でどこで差がついか、操作と動作を確認、どう変化したか確認します。
画面が回転する際、画面が再起動します。ダイアログを表示中に再起動が発生すると、アプリがクラッシュします。タブレットでは本体側の設定(画面の自動回転)が優先され、アプリで画面の向きが固定できません。タブレットでは画面の回転の対応が必須です。
Androidで日本語を含むデータを出力したファイルをWidowsで読み込むと文字化けします。文字コードがAndroidがUTF-8でWidowsがShift_JISだからです。AndroidでShift_JISに変換する方法を説明します。
WSAを使用すれば、Androidスマホがなくても、Windows 11のPCさえあれば、Androidネイティブアプリを動作させることが可能になります。Windows 11でAndroidアプリを実行する方法について、紹介します。
TextToSpeech は、テキストから音声合成して、再生や音声ファイルを作成できるライブラリです。画面上に通知メッセージをテキスト出力する感覚で、テキストを指定して音声で案内することが可能となります。実用的な音声案内の実装を説明します
DIYなら、エンジンを停止して数日経った状態でオイル交換することが可能です。オイルが冷えている状態で、汚れを含めて、オイルパンに十分に落ちていることが期待できます。同時にオイルフィルタを交換すると、無駄にオイルで汚れることなく交換できます
確定申告で必要な『仕訳』をスマホで簡単らくらく登録。登録した仕訳データを会計ソフトに取り込んで使う、確定申告サポートアプリです。登録している伝票(取引の仕訳)を選んで、金額を入力するだけで、計上・決済・手数料の仕訳を一度に登録できます。
DialogFragmentはユーザーによる意思決定や追加情報の入力を求める小さなウィンドウを想定しているため、通常の使用方法では、画面サイズいっぱいに表示することができません。ここでは画面サイズいっぱいに表示する方法について、紹介します。