その他の Android API

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

詳細については、サポートタイムラインと代替手段に関するページを参照してください。

ログ レベルを調整する

LogCat に表示される App Center によってログ メッセージの量を制御できます。 API を AppCenter.setLogLevel() 使用して、デバッグ中に追加のログ記録を有効にします。 ログ レベルは、 で定義されているレベルに android.util.Log対応します。 既定では、デバッグ不可能なアプリケーションとWARNデバッグ可能なアプリケーションの場合は にASSERT設定されます。 ログ レベルは、いつでも設定できます。

ログ メッセージをできるだけ多く表示するには、 を使用します Log.Verbose

AppCenter.setLogLevel(Log.VERBOSE);
AppCenter.setLogLevel(Log.VERBOSE)

インストールを特定する

アプリがインストールされると、App Center SDK によってデバイスごとに UUID が作成されます。 この識別子は、アプリが更新され、新しい識別子が生成されるのは、アプリが再インストールされたとき、またはユーザーが手動ですべてのアプリ データを削除した場合にのみ、デバイスに対して同じです。 次の API は、デバッグの目的で役立ちます。

AppCenter.getInstallId();
AppCenter.getInstallId()

この API は非同期です。詳細については、 App Center の非同期 API ガイドを参照してください。

注意

このメソッドは、開始後 AppCenter にのみ使用する必要があり、常に開始前に戻ります null

ユーザーの識別

App Center SDK では、クラッシュ レポートの拡張に使用される ユーザー ID の 設定がサポートされています。 この機能を使用するには:

  1. App Center SDK の概要ガイドの説明に従って を呼び出 AppCenter.start(...) して 、App Center SDK を構成します
  2. userID次のコードを使用して、SDK で を設定します。
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")

ユーザー ID を設定した後、App Center の検索機能を使用して、ID の特定のクラッシュ レポートを検索できます。 詳細については、App Center の 検索ドキュメントを参照してください

注意

ユーザー ID の値は 256 文字に制限されています。 クラッシュ レポートと共に表示されますが、影響を受けるユーザーの集計やカウントには使用されません。 ユーザー ID を複数回設定した場合は、最後のユーザー ID のみが使用されます。 この値は起動の間に SDK によって格納されないため、各アプリケーションの起動前にユーザー ID を自分で設定する必要があります。

実行時にすべてのサービスを無効にする

すべての App Center サービスを一度に無効にする場合は、API を使用します setEnabled() 。 無効にすると、SDK は App Center に情報を転送しません。

AppCenter.setEnabled(false);
AppCenter.setEnabled(false)

すべてのサービスを一度に有効にするには、同じ API を使用しますが、 パラメーターとして を渡 true します。

AppCenter.setEnabled(true);
AppCenter.setEnabled(true)

状態は、アプリケーションの起動間でデバイスのストレージに保持されます。

この API は非同期です。詳細については、 App Center の非同期 API ガイドを参照してください。

注意

このメソッドは、開始後 AppCenter にのみ使用する必要があります。

ネットワーク要求を禁止する

App Center SDK では、ネットワーク要求は既定で許可されます。 App Center SDK がユーザーの懸念によって収集したデータを送信する場合は、データの自動送信を禁止できます。

AppCenter.setNetworkRequestsAllowed(false);
AppCenter.setNetworkRequestsAllowed(false)

この場合、App Center SDK は引き続きデータを収集しますが、ネットワーク要求が許可される場合にのみ送信されます。

AppCenter.setNetworkRequestsAllowed(true);
AppCenter.setNetworkRequestsAllowed(true)

注意

この値は、開始間も保持されます。

App Center SDK でのデータの送信が許可されているかどうかをいつでもチェックできます。

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

注意

が開始されるまでAppCenter、以前に にSharedPreferences保存された値は無視されます。 を使用して setNetworkRequestsAllowed 、または true AppCenter の開始前に値が変更されなかった場合に、最後に設定された値が返されます。

実行時のサービスの状態を変更する

次のコードを使用して、ランタイムでサービスを有効または無効にします。

Analytics.setEnabled(false);
Analytics.setEnabled(false)

注意

このメソッドは、開始後 Analytics にのみ使用する必要があります。

App Center が有効になっているかどうかを確認する

App Center が有効になっているかどうかをチェックすることもできます。

AppCenter.isEnabled();
AppCenter.isEnabled()

この API は非同期です。詳細については、 App Center の非同期 API ガイドを参照してください。

注意

このメソッドは、開始後 AppCenter にのみ使用する必要があり、常に開始前に戻ります false

実行時に App Center SDK のバージョンを確認する

現在使用している App Center SDK のバージョンを取得できます。

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

ストレージ サイズ

App Center SDK を使用する場合、ログはデバイスにローカルに格納されます。 大きなログには多くの領域が必要になるため、ローカル データベースのサイズを制限することもできます。 また、 および API と組み合わせてpauseresume使用すると便利です。 長時間一時停止することが予想される場合は、より大きなデータベース サイズを使用して、より多くのイベントを格納できます。

API を setMaxStorageSize 使用して、ローカル DB のサイズを設定できます。 API は非同期であり、App Center サービスの起動時にコールバックが呼び出されます。 このため、 setMaxStorageSize を呼び出す前に を呼び出す AppCenter.start(...)必要があります。 API は 1 回だけ呼び出します。

// Use 20 MB for storage.
AppCenter.setMaxStorageSize(20 * 1024 * 1024L).thenAccept(new AppCenterConsumer<Boolean>() {

    @Override
    public void accept(Boolean success) {
        // The success parameter is false when the size can't be honored.
    }
});
AppCenter.start("{Your App Secret}", Analytics.class);
// Use 20 MB for storage.
AppCenter.setMaxStorageSize(20 * 1024 * 1024).thenAccept {
    // The success parameter (it) is false when the size can't be honored.
}

AppCenter.start(application, "{Your App Secret}", Analytics::class.java)

最大ストレージ サイズを設定しない場合、SDK では既定の最大サイズ 10 MB が使用されます。 設定できる最小サイズは 20 KB です。

注意

実際の最大ストレージ サイズは、選択した値よりも大きくなる可能性があります。 SQLite は、サイズをページ サイズの次の倍数に切り上げます。 App Center SDK では、4 KB のページ サイズが使用されます。

注意

25 日より前のログは破棄されます。

配布ストアを追加する

既定では、アプリ内更新プログラムは、定義されたストアの一覧からインストールされたアプリに対して機能します。 定義済みのストアの一覧に含まれていないストアを介してアプリケーションを配布する場合は、App Center を起動する前に、以下の API を使用して必要なパッケージ インストーラーを追加できます。

    Set<String> stores = new HashSet<String>();
    stores.add("com.store1.packageinstaller");
    stores.add("com.store2.packageinstaller");
    Distribute.addStores(stores);

注意

Google Play などのストアを追加して制限を回避しないでください。

失敗した API 呼び出し

コールバックが失敗する理由は多数あります。

  • 指定したサイズが無効な値です (20 KB 未満または 140 TB を超えています)。
  • 現在のデータベース サイズが、指定した最大サイズを超えています。
  • API は既に呼び出されています。 プロセスごとに 1 回だけ構成できます。
  • API は の後に AppCenter.start(...)呼び出されました。

ログ タグを使用して、コンソールで警告とエラーをチェックして、構成のAppCenter問題をトラブルシューティングできます。

Android SDK の非同期 API

非同期 API は、結果を AppCenterFuture 直接返すのではなく、オブジェクトを返します。

future オブジェクトを呼び出 get() して結果を同期的に待機するか、次のようなコールバックを提供して、API を呼び出すときにそれぞれの戻り値の型を入力できます。

AppCenterFuture<{ReturnType}> future = {AnyAsyncApi}();
future.thenAccept(new AppCenterConsumer<{ReturnType}>() {

    @Override
    public void accept({ReturnType} result) {

        // do something with result, this is called back in UI thread.
    }
});
val future = {AnyAsyncApi}()
future.thenAccept(object : AppCenterConsumer<{ReturnType}> {
    override fun accept(t: {ReturnType}?) {
        // do something with result, this is called back in UI thread.
    }
})

アプリケーションの速度低下を引き起こす UI スレッドがブロックされないようにするには、コールバックで を常に使用 thenAccept することを検討してください。

ワーカー スレッドでは、 を呼び出 {AnyAsyncApi}().get()すことができます。

コールバックの例:

AppCenter.isEnabled().thenAccept(new AppCenterConsumer<Boolean>() {

    @Override
    public void accept(Boolean enabled) {
        Log.d("MyApp", "AppCenter.isEnabled=" + enabled);
    }
});
AppCenter.isEnabled().thenAccept { enabled -> 
    Log.d("MyApp", "AppCenter.isEnabled=$enabled")
}

同期の例:

boolean enabled = AppCenter.isEnabled().get();
val enabled = AppCenter.isEnabled().get()