> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Game Saves のアクティブ デバイス変更

> PlayFab Game Saves のアクティブ デバイス変更を処理し、複数のプラットフォームでプレイヤーがセッションの途中でデバイスを切り替える際の進行状況の損失を防ぎます。

## アクティブ デバイス変更の処理

プレイヤーがセッションの途中でデバイスを切り替える場合、複数のデバイスで同時にプレイして誤って進行状況を失うことを防ぐことが重要です。

### 問題のシナリオ

1. **プレイヤーがデバイス A で開始**: プレイを開始し、「アクティブ」デバイスとなる
2. **プレイヤーがデバイス B に切り替え**: ログインして「Sync Last Saved Data」を選択する
3. **デバイス B がアクティブになる**: デバイス A は既にアクティブ デバイスではなくなるが、それを知らない可能性がある
4. **進行状況を失うリスク**: プレイヤーがデバイス A でプレイを続け、競合するセーブ状態が発生する可能性がある

### 解決策: アクティブ デバイス コールバック

アクティブ デバイスの変更をリッスンし、遷移を優雅に処理します。

```cpp theme={null}
// Set up the active device changed callback during initialization
hr = PFGameSaveFilesSetActiveDeviceChangedCallback(
    optionalTaskQueue,                    // Use nullptr for immediate callback
    MyActiveDeviceChangedCallback,        // Your callback function
    contextPtr);                          // Optional context for your callback
```

### コールバック実装の例

```cpp theme={null}
void MyActiveDeviceChangedCallback(void* context)
{
    // The current device is no longer active for Game Saves
    
    // 1. Pause the game immediately
    
    // 2. Inform the player what happened
    // with a message such as:
    // "Your game progress is being continued on another device."
    // "Returning to main menu to prevent data loss."
    
    // 3. Return to a safe state (main menu)
    
    // 4. Re-initialize Game Saves system when ready to play again
    // (The player will need to sync again from the main menu)
}
```

### XBOX 固有の例外

ゲームが XBOX の **Single Point of Presence (SPOP)** 機能のみを使用してサインインする場合、このシナリオは自動的に防止されます。SPOP により、ユーザーは一度に 1 台の XBOX デバイスでのみサインインできるようになります。

### ベスト プラクティス

* マルチ プラットフォームのゲームでは **常にこのコールバックを実装する**
* コールバックがトリガーされたら **ゲームプレイを即座に一時停止する**
* なぜメニューに戻されるのかを **プレイヤーに明確に説明する**
* ゲームを閉じるのではなくメイン メニューに戻ることで、**再入場を容易にする**


## Related topics

- [Game Saves クイックスタート](/ja-jp/services/playfab/player-progression/game-saves/quickstart.md)
- [Game Saves の UI コールバック](/ja-jp/services/playfab/player-progression/game-saves/ui-callbacks.md)
- [Game Saves のオフライン モード](/ja-jp/services/playfab/player-progression/game-saves/offline.md)
- [PlayFab Game Saves のアカウント リンク戦略](/ja-jp/services/playfab/player-progression/game-saves/linking.md)
- [デバイス プレゼンス変更の処理](/ja-jp/services/xbox-services/community/presence/how-to/live-handling-a-device-presence-change.md)
