[go: nahoru, domu]

[この記事は Laurence Moroney、デベロッパーアドボケートによる Android Developers Blog の記事 "Improvements to Sign-In with Google Play services 8.3" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google Play サービス 8.3 では、Google アカウントでのサインインのエクスペリエンスを大きく改善しました。変更について理解を深めていただけるよう、このブログにデベロッパー向けの解説を連載することとし、今回はその第一弾です。本稿では、ユーザー エクスペリエンスに対する変更、その変更をアプリに実装する方法、Google へのサインイン部分のコーディングをよりシンプルにする API のアップデートを紹介します。Android Marshmallow では、この新しい Sign-In API はデバイスのパーミッションを一切要求しません。旧バージョンの API では、デバイス上のアカウントへのランタイム アクセスを要求していましたが、これは不要になりました。

ユーザー エクスペリエンスの改善

Google のソーシャル サインイン ボタンを操作するユーザー エクスペリエンスについて、デベロッパーの皆様からのフィードバックが多数寄せられてきました。ユーザーにとってはステップが多く、混乱を招くとのご指摘を多数の方からいただきました。従来のユーザー エクスペリエンスは、まずユーザーがボタンをタッチすると、アカウントを選択するためのダイアログが表示されるというものでした。アカウントに Google+ プロファイルがない場合、ここで作成しなければなりません。さらに、アプリで必要とされる情報のタイプに基づいてパーミッションを付与する必要があります。従来はこのような手順を踏まないと、アプリにサインインできませんでした。

新しい API では、アプリが要求するパーミッションの初期セットが削減され、こちらに示したとおり、基本的なプロファイル情報に、オプションとしてメールアドレスを追加するようになっています。これでユーザー エクスペリエンスがかなりシンプルになります。まずはボタンそのもの:これまで、サインイン ボタンのブランディングが、実際には Google+ のデータを使用することはない場合でも、サインインに Google+ のデータが必要と誤解するユーザーもいる、というフィードバックを多数いただいてきました。そこで SignInButton のスコープを削減し、ブランディングを再構成、ボタンの表示を「Sign In with Google」(Google へのサインイン)として、Google 標準のブランディング に従い、基本的なプロファイル情報のみを使用するようにしました。
それ以降のユーザー操作もシンプルになりました。以前はこの場面で、デバイスに登録されたメールアドレスから、Google アカウントを選択する画面が表示され、続いて [Create Google+ Profile] ダイアログとパーミッションに同意するダイアログが表示されていました。
それが、ユーザーにアカウントを選択して同意してもらうだけという単一のステップに変更されました。ユーザーが Google+ プロファイルを所有していない場合、作成するステップは省略されています。その後の同意ダイアログは別途表示することになります。アプリがなぜユーザーのカレンダーや連絡先にアクセスするかについて、ユーザーが理解しやすいよう、データが実際に必要になったときのみ、コンテキスト内で認可を求めるのがベストプラクティスです。
これらに変更によって、Google アカウントを使ったサインイン率が向上すると期待しています。

InstacartNPR OneBring! など、この新しい API を使用したアプリは既に公開されています。
次回の投稿では、API を変更して Google Sign-In を使用するアプリのコーディングをもっと簡単にする方法について説明します。


Posted by Eiji Kitamura - Developer Relations Team

[この記事は Lily Sheringham、Google Play デベロッパー マーケティングによる Android Developers Blog の記事 "Developer tips for success with Player Analytics and Google Play games services" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

編集者のメモ: デベロッパーからのヒントを紹介するシリーズです。Google Play で成功を収めるには、Player Analytics と Google Play ゲーム サービスをどのように活用すればいいのか、人気が高いゲームのデベロッパー数名に話を聞きました。- Ed.

デベロッパー コンソールから利用可能な Google Play ゲーム サービスは、ゲームに実績や順位表といった機能を追加するためのものです。Google Play ゲーム サービスで提供している Player Analytics は、ゲームに特化した無料のアナリティクス ツールで、デベロッパー コンソールの「ゲーム サービス」タブから利用できます。このレポートを使えば、ゲームにおけるプレーヤーの進行、有料サービス購入の状況、ゲームをやめるタイミングなどをデータ駆動型のアプローチで把握することができます。

Player Analytics によってユーザー1人あたりの収益 140% 増を達成した「Bombsquad」


Eric Froemling は独立系のデベロッパーで、ゲーム「Bombsquad」は当初趣味として製作していました。しかし今、Eric はこのゲームで生計を立てています。昨年 Eric は、このゲームのビジネスモデルを有償から無償に切り替えました。Player Analytics を活用して、プレイヤーの定着率とマネタイズ(収益化)の方法を改善した結果、アクティブ ユーザー 1 人 1 日あたりの平均収益(ARPDAU)が 140 % 増となりました。

プレイヤーのゲーマー体験を改善して、定着率と現金収入を増やすために、Eric が Player Analytics とデベロッパー コンソールをどのように使用したかについては、こちらの動画をご覧ください。

Auxbrain が明かす、Google Play ゲーム サービスで成功するためのヒント


ゲーム開発会社 Auxbrain の創設者であり CEO である Kevin Pazirandeh は、「Zombie Highway」 のクリエイターでもあります。Kevin は Google Play ゲーム サービスの活用方法の知見を次のようにコメントしています。

「多少の例外はありますが、エンゲージメント(ユーザーのゲーム利用時間)の測定については、これほど良いツールは他に見当たりません。さらに、ユーザーの定着率が表形式で示されているだけでなく、エンゲージメントの変化もわかることも大事です。このツールを使ったことのない人たちのために説明すると、ユーザーの定着率のテーブルは毎日更新されるもので、最初にプレイした日から数日後に再度プレイしたプレーヤーのパーセンテージがわかります。自分のゲームの定着率をよく似た他のゲームのものと比較すれば、開発した機能が正しかったかそうでないか、デベロッパーにはすぐにわかります」

Google Play ゲーム サービスのアナリティクス ツールを最大限に活用するための方法について、Kevin がとっておきのコツを教えてくれました。
  1. Player Analytics は無償で使える - あなたのゲームに Google Play ゲーム サービスを既に組み込んでいる場合は、デベロッパー コンソール上で [Game services] > [Player Analytics] を選択すると、そのゲームに関するアナリティクス データを取得することができます。
  2. 変更は必ずしも改善とはならない - デベロッパーがよかれと思ってゲームに手を加えても、プレーヤーはその変更を改善とは捉えない場合があります。ゲームに変更を加えるときには、その効果を測る方法も、戦略として用意しておきましょう。Player Analytics で変更の影響が確認できない領域については変更を実施せず、効果が予測できる変更を優先させましょう。
  3. 成績やイベントを設定するとプレーヤーの進捗が追跡できる - プレーヤーの成績やイベントを記録する機能を実装すると、プレイヤーの進捗レポートや Event viewer を使用して、各プレイヤーのゲームの到達度を追跡することができます。こうすると、プレーヤーが苦戦したり行き詰ったりする場面がすぐにわかるので、プレーヤーが先に進めるように救済する方法を探すこともできます。
  4. サインイン情報を使用してより多くのデータを入手 - 収集したプレーヤーの進捗データが増えるのに比例して、Player Analytics のレポートの精度も上がります。データを収集するには、ゲームに加わるプレーヤーを増やすのが一番です。プレイヤーのログインは自動的に実行し、ゲームに再訪したプレイヤーに対しては、最初の画面で(チュートリアルを示してから)、前回の続きからゲームを開始できるようにします。
  5. 定着率テーブルでプレーヤーのエンゲージメントを追跡 - 定着率テーブル レポートで、どのタイミングでプレーヤーが離脱するかを長期間にわたって観察することができます。ゲームに変更を加える前後で定着率が変化したかどうかを見ることもできますし、ゲームの設計を変更するとプレーヤーの離脱するタイミングが早くなったり遅くなったりするかどうかを、他の類似ゲームと比較して判断することもできます。
Google Play Games Services の詳細はこちらをご覧ください。また、当社の製品とベストプラクティスの情報は、あなたのビジネスを世界規模に拡大することにつながる可能性があります。


Posted by Eiji Kitamura - Developer Relations Team

[この記事は Aditya Tendulkar, Product Manager, Google My Business による Geo Developers Blog の記事 "Introducing the Google My Business API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

米国時間 12 月 15 日、Google は Google My Business API(英語)をリリースしました。Google My Business は、Google の検索ユーザーと世界中の企業とをつなぐ上で有効な手段です。この API により、大企業やサードパーティが Google My Business プラットフォームに統合することが容易になり、より簡単な方法で最新情報を Google 検索および Google マップに公開できるようになります。例えば、クリスマスや年末年始といった特別な期間の営業時間を設定し、その設定内容をすべての営業拠点・店舗に反映させることが容易にできます。

Google My Business API では次のことが可能になります。

  • 店舗名、住所、電話番号、カテゴリー、営業時間などさまざまな情報を設定しながらロケーションを作成 
  • 特別営業時間(祝祭日や特別なイベントなど営業時間が普段と異なる場合の設定)を管理 
  • ビジネス ロケーションに閉業・閉店のマークを設定 
  • 営業用の写真を管理 
  • ロケーションおよびビジネスのアカウントにてマネージャーを一覧表示、招待、削除 
  • ロケーションの更新・重複・一時停止状況を確認 
  • ロケーションを名前、カテゴリー、ラベルで検索/フィルタリング 
  • 地点と半径、または Place ID を指定してそのビジネスのサービス提供エリアを設定 
  • 新しいロケーションを作成して特別営業時間を設定する 

Java コードのサンプルを紹介します。

public static Location createLocation(String accountName) throws Exception {
  Location location = new Location();

  // Street address
  Address address = new Address();
  List addressLines = Arrays.asList("740 Valencia Street");
  address.setAddressLines(addressLines);
  address.setLocality("San Francisco");
  address.setAdministrativeArea("CA");
  address.setCountry("US");
  address.setPostalCode("94110");
  location.setAddress(address);

  // Business hours
  BusinessHours businessHours = new BusinessHours();
  List periods = new ArrayList<>();
  List days = Arrays.asList("Monday", "Tuesday", "Wednesday", "Thursday", "Friday");
  for (String day : days) {
    TimePeriod period = new TimePeriod();
    period.setOpenDay(day);
    period.setOpenTime("11:00");
    period.setCloseTime("20:00");
    period.setCloseDay(day);
    periods.add(period);
  }
  businessHours.setPeriods(periods);
  location.setBusinessHours(businessHours);

  // Special hours
    Date christmasEve = new Date().setYear(2015).setMonth(12).setDay(24);
    Date christmasDay = new Date().setYear(2015).setMonth(12).setDay(25);
    List periods = new ArrayList<>();
    periods.add(new SpecialHourPeriod()
        .setStartDate(christmasEve)
        .setOpenTime("11:00")
        .setCloseTime("20:00")
        .setEndDate(christmasEve));
    periods.add(new SpecialHourPeriod()
        .setStartDate(christmasDay)
        .setIsClosed(true));
   SpecialHours specialHours = new SpecialHours()
        .setSpecialHourPeriods(periods);

  location.setSpecialHours(specialHours);

  location.setLocationName("Dandelion Chocolate");
  location.setStoreCode("DC1");
  location.setPrimaryPhone("415 349-0942");
  location.setPrimaryCategory(new Category().setCategoryId("gcid:chocolate_shop"));
  location.setWebsiteUrl("https://www.dandelionchocolate.com/");

  // Create Location
  CreateLocationRequest createLocationRequest = new CreateLocationRequest();
  // RequestId is a unique id for each location created
  createLocationRequest.setRequestId(“1a84939c-ab7d-4581-8930-ee35af6fefac”);
  createLocationRequest.setLocation(location);
  createLocationRequest.setLanguageCode("en-US");
  Mybusiness.Accounts.Locations.Create createLocation =
      mybusiness.accounts().locations().create(accountName, createLocationRequest);

  Location createdLocation = createLocation.execute();

  System.out.printf("Created Location:\n%s", createdLocation.toPrettyString());
 
  return createdLocation;
}
以上の特別営業時間が Google My Business に(英語)設定されると、次の図のように、ホリデーシーズンの営業時間に表示が切り替わります。(英語)。



Google My Business API の詳細およびアクセスの申請方法については、こちらのデベロッパー向けのページ(英語)をご覧ください。

ご質問やご意見などがありましたら、Google My Business API フォーラムにて API チームにご連絡ください。

Posted by 丸山 智康 (Tomoyasu Maruyama) - Google Maps Solution Architect, Google Maps API for Work

[この記事は Laurence Moroney、Android Wear デベロッパー アドボケートによる Android Developers Blog の記事 "What’s new in Google Play services 8.3" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google Play サービス 8.3 では新たな機能が多数追加されたので、それについてご紹介します。

今回のリリースの大きな特徴は、ユーザー認証の強化です。まず、Google Sign-In 関連の API を更新し、ユーザー エクスペリエンスが簡潔になるように実装を簡略化しました。新しい Google Sign-In では、デバイス アカウントのパーミッションが不要です。Marshmallow 向けにアプリの開発を進めているデベロッパーには大変便利になりました。API には、最新の Google ブランディングも反映しています。Google Play サービス 8.3 を使用する際、デフォルトのスコープでは SignInButton はこのような外観でした。
以前なら、ユーザーは「サインイン」ボタンにタッチしてから、複数のステップ(アカウントの選択、プロファイル情報へアクセスするためのパーミッション付与、場合によっては Google+ アカウントの作成など)を実行しなければなりませんでした。ところが Google Play サービス 8.3 では、ワンタップするだけで基本プロファイルにアクセスできます。

新しい API に関するドキュメントはこちらでご確認いただけます。

また、複数のデバイスで同時にサインインしやすくするため、Google Sign-In を使っている場合でも、従来のパスワードベースの認証を使っている場合でも、Smart Lock API は重要な更新を受信します。また、新しい API メソッドを追加しました。このメソッドは、ユーザーがサインイン用に使用しているメールアドレスをサインイン用のフォームにあらかじめ入力しておく、またはフォームが表示された際にユーザーの入力を支援するような設定を行うためのダイアログを表示するためのものです。getHintPickerサンプル コード)をご確認ください。このメソッドでは、どのデバイスからもパーミッションを受け取る必要はなく、メソッドがデバイス上のアカウント情報をサインイン情報として受信していた、ピッカーに代わる役割を果たします。したがって Marshmallow では、デバイスからのアクセスにはランタイム パーミッションが必要となります。

ヒント情報を使用すれば、サインイン用のフォームに必要な情報、すなわち名前、メールアドレス、プロフィール画像などを、サインイン時にワンタップで一気に入力することができます。あるいはメールアドレスを使って、ユーザーをサインインやサインアップの操作にスマートに誘導することもできます。ユーザーが選択したエントリがデバイス上のアカウントと一致する場合、検証済みのメールアドレスを Google からヒント情報として送信して、メールアドレスの検証とユーザー認証を省略できる仕組みをシステムに実装するのが一番望ましい方法です。ID Token は、Google Sign-In でも採用しています。

Google Play サービスには、ユーザーの所在地を特定するために、GPS、WiFi、携帯電話の無線通信用信号など、内蔵している位置情報のセンサーから情報を抽出し、使いやすい API に統合して格納する、位置情報統合(FLP)機能があります。バッチ化については、FLP を改善しました。バージョン 8.3 より古いバージョンでは、位置情報のバッチ API を使用して FLP でネットワーク トラフィックを統合し、使用電力を節約していました。ただし、アプリが位置情報リクエストのバッチを削除した場合、バッチはクリアされていました。これを防ぐために、バッチ化した位置情報を直ちに返す API を追加しました。詳細は、FusedLocationProviderApiflushLocationsremoveLocationUpdates メソッドの呼び出しをご確認ください。

App Invites は、ユーザーが知人とアプリを共有できるようにするテクノロジーです。Google Play サービス 8.3 には、App Invites を組み込んでアプリをビルドすると、コーディングをかなりシンプルにできるよう更新されました。AppInvite.AppInviteApi.getInvitation() メソッドが使えるようになりました。このメソッドは、ディープリンク アクティビティの起動に使用する ResultCallback をセットアップするので、コードがシンプルになります。

Play Game サービスの Player Stats API もアップデートされています。最新版には、ゲームを辞めてしまいそうなプレーヤーを表す、新しいシグナルが追加されました。このシグナルを利用して、辞めそうなプレーヤーに通常価格よりお得なパワーアップ アイテムを販売するなど、ユーザーの定着率を上げる特別プロモーションを提供できます。

最後に、ウェアラブル端末対応のアプリを開発している場合、優れたユーザー エクスペリエンスを提供するには、バッテリーの寿命と電力利用の最適化が極めて重要になることはご存じでしょう。Google Play サービス 8.3 では、緊急時にもデータ アイテムを同期できる DataApi を更新しました。データ アイテムに優先度が追加されたので、同期を実行するタイミングを指定できるようになりました。遠隔操作アプリのように、すぐに同期しなければならないアプリを制作されている場合、setUrgent() を呼び出すと、同期を直ちに実行することができます。連絡先を更新するアプリであれば、多少の同期遅れを許可することができます。緊急ではない DataItems は 30 分まで遅延できますが、2~3分以内に届くことがほとんどです。デフォルトでは優先度は「低」に設定されています。したがって、以前と同様に即時の同期を実行したい場合は、setUrgent() を呼び出す必要があります。

Android Wear API のリスナーに、フィルターが追加されたため、リスナーは変更のサブセットのみを携帯端末とウォッチの両方で受け取れるようになりました。Android の Manifest ファイルに登録済みのリスナーはフィルターで抽出され、プロセスの開始が必要なイベントのみを受信します。それ以外のイベントは、addListener() などのメソッドで追加された、接続中のリスナーに送信されます。リスナーが関心を持っていないイベントを除去する手間が省けるので、アプリやシステムの効率が上がります。

今回の Google Play サービスのリリースについての説明は、以上です。詳細は、Google デベロッパーサイトをご覧ください。

Posted by Eiji Kitamura - Developer Relations Team

[この記事は Gayathri Rajan、Ryan Cairns による Google Developers Blog の記事 "Building Brillo-iant devices with Weave for a Connected world" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

今年初めの Google I/O において、端末接続に最適なソリューション、 BrilloWeave のプレビュー版をリリースしました。

Brillo は、Android、コアサービス、開発者キット、デベロッパー コンソールで構成されており、軽量の組み込み OS を採用することで、ハードウェアでもソフトウェアと同様に簡単かつスピーディに開発が行えます。豊富なハードウェア機能とカスタマイズ オプションがあり、試作品から本番までの速やかな移行や、無線(OTA)更新、メトリック、クラッシュ レポートなど各種管理が可能です。

Brillo の詳細については、次のビデオをご覧ください。
接続端末の開発では、他の端末との通信方法を選択し、ユーザーと接続端末の通信を許可する必要があります。そこで Weave が必要となります。Weave では、双方向から操作できる通信機能を端末に直接組み込むことができます。また携帯電話や端末がクラウドから、ローカルやリモートで相互に通信できるメッセージング サービスも提供しており、Weave クラウド サーバーを使用することで、リモート通信でウェブ接続端末にどこからでも安全にアクセスできます。Weave で端末の設定やアクセス制限を安全に行うこともできます。さらに Brillo 内に直接組み込まれているため Brillo に対してシームレスに動作しますが、Weave ライブラリを既存の Linux ベース OS で使用することも可能です。

Weave の優れた機能については、次のビデオをご覧ください。
Weave には iOS 用と Android 用のモバイル SDK が搭載されており、モバイル ユーザーの接続状態を管理し、さらに機能を強化できるアプリを構築できます。アプリを実際の端末まで適用したいと考えるアプリ開発者は、Weave のモバイル およびウェブ API を使用して、機種や台数に関係なく Weave 端末を 1 つのアプリで制御できます。

Brillo と Weave は、デフォルト設定でもオープン、拡張可能、しかも安全なため、さまざまな端末や使用事例をサポートでき、提供されるプラットフォーム、ツール、サービスで端末やアプリがさらに使いやすくなります。

プラットフォーム以外にも、認定 Weave ブランドの端末を提供する Weave 互換性プログラムのほか、シリコン ベンダーが Brillo 準拠のハードウェア開発と販売を行うための、ハードウェア プログラムを順次公開していきます。

Posted by Eiji Kitamura - Developer Relations Team

[この記事は Joshu Gordon、デベロッパー アドボケートによる Android Developers Blog の記事 "New Course on Developing Android Apps for Google Cast and Android TV" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google は、Android アプリのユーザーが日常を過ごしている場所、つまりリビングルームでもお役に立ちます。Google Cast を使うと、ユーザーは Android、iOS、ウェブから、お気に入りのアプリをテレビに送信することができます。Android TV を使用すれば手持ちのテレビを Android 端末として使えるので、アプリを大きな画面で見ることができます。
先日お知らせした Android Wear のコースに続き、新しいオンライン コース「Google Cast and Android TV Development」(Google Cast と Android TV の開発)を Udacity に開設したことをお知らせします。このコースでは、既存の Android アプリを拡張して、テレビと連携させる方法を説明しています。実用的なアドバイス、コード スニペット、サンプルコードの詳細な説明など、盛りだくさんの内容です。

Google Cast と Android TV の両方に対応するためにアプリを書き直す必要はありません。Android TV は、Android に新しいフォームファクタが加わっただけのものです。Leanback library により、大きなスクリーンにアプリを表示するのが簡単になります。また、アプリに映画のような UI を追加することもできます。Google Cast には、誰もがすぐにこのデバイスを使えるように、サンプルやガイドが用意されています。また Google は Cast Companion Library を提供していますが、これは Android アプリの Google Cast への追加を迅速かつ簡単に実行するためのものです。

オンライン コースでは、Android WearAndroid Auto など、他の Google プラットフォームも含めた、ユビキタス コンピューティング シリーズの一環として実施します。それぞれが独立した短期コースのため、単独でも一括でも受講可能です。

学習は今すぐ、無料で開始できます。ユーザーのみなさんが、あなたのアプリをテレビで見られる日を待っていますよ。


Posted by Takuo Suzuki - Developer Relations Team

[この記事は Rich Hyndman、デベロッパー アドボケートによる Android Developers Blog の記事 "New Android Marshmallow sample apps " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

3 つの新しい Android Marshmallow サンプル アプリケーションの提供が開始されました。通常どおり、GitHub の Google Samples リポジトリ、または Android Studio のサンプル ブラウザから直接入手できます。

Android ダイレクト シェアのサンプル







ダイレクト シェアは Android Marshmallow の新機能であり、提供される API によって、ユーザーはより直感的に素早く情報を共有できるようになります。ダイレクト シェアによって、ユーザーは他のアプリ内のターゲット (例: 連絡先) とコンテンツを共有できます。たとえば、ダイレクト シェアのターゲットが他のソーシャル ネットワーク アプリのアクティビティを起動し、そのアプリ内の特定の友人と直接コンテンツを共有できるようになります。

このサンプルはダミーのメッセージング アプリで、その他のメッセージング アプリと同様に、プレーン テキストを共有するインテント (意図・目的) を受け取ります。このサンプルは、共有するインテントの候補リストに、複数のオプションを直接表示させる方法をデモします。別のアプリからのテキストメッセージをユーザーが共有する際、このサンプル アプリがオプションとしてリストされます。ダイレクト シェアの機能を使用すると、このアプリの選択ダイアログにいくつかの連絡先が直接表示されます。

ダイレクト シェアを有効にするには、アプリに ChooserTargetService を拡張するサービスを実装する必要があります。メソッド onGetChooserTargets() をオーバーライドし、ダイレクト シェアのオプションのリストを返します。

AndroidManifest.xml の、インテントを受け取るアクティビティにメタデータのタグを加えます。android.service.chooser.chooser_target_service として android:name を指定し、サービスに android:value を指定します。

Android MidiSynth のサンプル

Android 6.0 では新たに MIDI がサポートされました。このサンプルでは MIDI キーボードなど、取り付けられた入力デバイスから送られた MIDI メッセージを受信・再生するために MIDI API を使用する方法をデモします。

Android MIDI API (android.media.midi) により、デベロッパーはAndroid 端末に MIDI 端末を接続し、送られてくる MIDI メッセージを処理することができるようになります。

このサンプルでは、以下のような MIDI API の基本機能のいくつかをデモします。
  • 現在、使用可能なデバイスの一覧表 (含: 名前、ベンダー、性能)
  • MIDI 端末の接続時または接続解除時の通知
  • MIDI メッセージの受信と処理

シンプルなオシレーターと音符再生機能も実装されています。

Android MidiScope のサンプル

取り付けられたデバイスから MIDI 信号を受け取り、処理するために MIDI API を使用する方法をデモするサンプルです。

Android MIDI API (android.media.midi) により、デベロッパーはAndroid に MIDI 端末を接続し、送られてくる MIDI 信号を処理することができるようになります。このサンプルでは、現在使用可能なデバイスの一覧表 (含: 名前、ベンダー、性能)、MIDI 端末の接続時または接続解除時の通知、MIDI 信号の受け取りといった MIDI API の基本機能をデモします。このサンプルは受け取った MIDI 信号すべてをスクリーン ログに表示するのみで、サウンドは再生しません。

サンプルを今すぐ確認して、Android Marshmallow 開発に取り組んでみてください。

Posted by Eiji Kitamura - Developer Relations Team