重要
Visual Studio App Center は、2026 年 6 月 30 日まで引き続きサポートされる分析機能と診断機能を除き、2025 年 3 月 31 日に廃止されました。 詳細を参照してください。
ログ レベルを調整する
LogCat に表示される App Center によるログ メッセージの量を制御できます。 デバッグ中に追加のログ記録を有効にするには、 AppCenter.setLogLevel() API を使用します。 ログ レベルは、 android.util.Logで定義されているレベルに対応します。 既定では、デバッグ不可能なアプリケーションの場合は ASSERT 、デバッグ可能なアプリケーションの場合は WARN に設定されます。 ログ レベルはいつでも設定できます。
ログ メッセージをできるだけ多くするには、 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 の 設定がサポートされています。 この機能を使用するには:
- App Center SDK の概要ガイドで説明されているように、
AppCenter.start(...)を呼び出して App Center SDK を構成します。 - 次のコードを使用して、SDK で
userIDを設定します。
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")
ユーザー ID を設定した後、App Center の検索機能を使用して、ID の特定のクラッシュ レポートを検索できます。 詳細については、App Center の 検索ドキュメントを参照してください。
注
ユーザー ID の値は 256 文字に制限されています。 クラッシュ レポートと共に表示されますが、影響を受けるユーザーの集計やカウントには使用されません。 ユーザー ID を複数回設定した場合は、最後のユーザー ID のみが使用されます。 この値は起動の間に SDK によって格納されないため、各アプリケーションの起動前にユーザー ID を自分で設定する必要があります。
実行時にすべてのサービスを無効にする
すべての App Center サービスを一度に無効にする場合は、 setEnabled() API を使用します。 無効にすると、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()
注
以前に SharedPreferences に保存した値は、 AppCenter が開始されるまで無視されます。
AppCenter の開始前に値が変更されなかった場合は、 setNetworkRequestsAllowed または true を使用して、最後に設定された値が返されます。
実行時のサービスの状態を変更する
次のコードを使用して、ランタイムでサービスを有効または無効にします。
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 を使用する場合、ログはデバイスにローカルに格納されます。 大きなログでは大量の領域を占有する可能性があるため、ローカル データベースのサイズを制限することもできます。 また、 pause API や resume API と組み合わせて使用することもできます。 長時間一時停止することが予想される場合は、より大きなデータベース サイズを使用して、より多くのイベントを格納できます。
setMaxStorageSize API を使用して、ローカル 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 オブジェクトを返します。
将来のオブジェクトの 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()