The Android development team took to reddit this week to preview Android 17’s foldable gaming mode. Made specifically for foldables, the mode splits your display 50/50, with the gameplay up top and a full array of controls available on the bottom.
googletag.cmd.push(function() {
var mapping = googletag.sizeMapping().
addSize([0, 0], [[250, 250], [300, 100], [300, 250]]).
build();
googletag.defineSlot( ‘/1043061/DL_INJECT1’, [[250,250],[300,100],[300,250],[300,600]], ‘gpt-ad-3740856563833-0’ )
.addService(googletag.pubads()).defineSizeMapping(mapping);
window.advadsGamEmptySlotsTimers = window.advadsGamEmptySlotsTimers || {};
const timers = window.advadsGamEmptySlotsTimers;
timers[‘gpt-ad-3740856563833-0’] = setTimeout( function () {
const id = ‘gpt-ad-3740856563833-0’;
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
delete ( timers[id] );
}, 1000 );
if ( typeof window.advadsGamHasEmptySlotListener === ‘undefined’ ) {
googletag.pubads().addEventListener( ‘slotRequested’, function ( ev ) {
const id = ev.slot.getSlotElementId();
if ( typeof timers[id] === ‘undefined’ ) {
return;
}
clearTimeout( timers[id] );
timers[id] = setTimeout( function () {
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
delete ( timers[id] );
}, 2500 );
} );
googletag.pubads().addEventListener( ‘slotResponseReceived’, function ( ev ) {
const id = ev.slot.getSlotElementId();
if ( typeof timers[id] !== ‘undefined’ ) {
clearTimeout( timers[id] );
delete ( timers[id] );
}
if ( ! ev.slot.getResponseInformation() ) {
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
}
} );
window.advadsGamHasEmptySlotListener = true;
}
googletag.enableServices();
googletag.display( ‘gpt-ad-3740856563833-0’ );
} );
“We wanted to make this experience as seamless as possible for both players and game developers. Foldable gaming mode creates a virtual gamepad that emulates physical button presses at the system level. This means it’s designed to work with any game that supports physical controllers,” the team explained.
Supported Inputs
- D-pad
- Left and Right Thumbsticks
- A, B, X, Y action buttons
- L1, L2, L3
- R1, R2, R3
- Start button
A lot of thought seems to have went into the customization of the layout, too. There are numerous configurations to choose from, with Google noting that not everyone holds a controller the same way. Themeing is also available for the controllers.
googletag.cmd.push(function() {
var mapping = googletag.sizeMapping().
addSize([0, 0], [[250, 250], [300, 100], [300, 250]]).
build();
googletag.defineSlot( ‘/1043061/DL_INJECT1’, [[250,250],[300,100],[300,250],[300,600]], ‘gpt-ad-2009634911856-0’ )
.addService(googletag.pubads()).defineSizeMapping(mapping);
window.advadsGamEmptySlotsTimers = window.advadsGamEmptySlotsTimers || {};
const timers = window.advadsGamEmptySlotsTimers;
timers[‘gpt-ad-2009634911856-0’] = setTimeout( function () {
const id = ‘gpt-ad-2009634911856-0’;
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
delete ( timers[id] );
}, 1000 );
if ( typeof window.advadsGamHasEmptySlotListener === ‘undefined’ ) {
googletag.pubads().addEventListener( ‘slotRequested’, function ( ev ) {
const id = ev.slot.getSlotElementId();
if ( typeof timers[id] === ‘undefined’ ) {
return;
}
clearTimeout( timers[id] );
timers[id] = setTimeout( function () {
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
delete ( timers[id] );
}, 2500 );
} );
googletag.pubads().addEventListener( ‘slotResponseReceived’, function ( ev ) {
const id = ev.slot.getSlotElementId();
if ( typeof timers[id] !== ‘undefined’ ) {
clearTimeout( timers[id] );
delete ( timers[id] );
}
if ( ! ev.slot.getResponseInformation() ) {
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
}
} );
window.advadsGamHasEmptySlotListener = true;
}
googletag.enableServices();
googletag.display( ‘gpt-ad-2009634911856-0’ );
} );
Once available to devices, foldable owners will simply need to open their device, open a supported title, and then enjoy the new mode.
We’re excited for this. It’s expected to release in the “coming months.”
googletag.cmd.push(function() {
var mapping = googletag.sizeMapping().
addSize([0, 0], [[250, 250], [300, 100], [300, 250]]).
build();
googletag.defineSlot( ‘/1043061/DL_INJECT1’, [[250,250],[300,100],[300,250],[300,600]], ‘gpt-ad-2071945998721-0’ )
.addService(googletag.pubads()).defineSizeMapping(mapping);
window.advadsGamEmptySlotsTimers = window.advadsGamEmptySlotsTimers || {};
const timers = window.advadsGamEmptySlotsTimers;
timers[‘gpt-ad-2071945998721-0’] = setTimeout( function () {
const id = ‘gpt-ad-2071945998721-0’;
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
delete ( timers[id] );
}, 1000 );
if ( typeof window.advadsGamHasEmptySlotListener === ‘undefined’ ) {
googletag.pubads().addEventListener( ‘slotRequested’, function ( ev ) {
const id = ev.slot.getSlotElementId();
if ( typeof timers[id] === ‘undefined’ ) {
return;
}
clearTimeout( timers[id] );
timers[id] = setTimeout( function () {
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
delete ( timers[id] );
}, 2500 );
} );
googletag.pubads().addEventListener( ‘slotResponseReceived’, function ( ev ) {
const id = ev.slot.getSlotElementId();
if ( typeof timers[id] !== ‘undefined’ ) {
clearTimeout( timers[id] );
delete ( timers[id] );
}
if ( ! ev.slot.getResponseInformation() ) {
document.dispatchEvent( new CustomEvent( ‘aagam_empty_slot’, {detail: id} ) );
}
} );
window.advadsGamHasEmptySlotListener = true;
}
googletag.enableServices();
googletag.display( ‘gpt-ad-2071945998721-0’ );
} );
Read the original post: Android 17’s Foldable Gaming Mode Previewed, Coming Soon
https://www.droid-life.com/2026/06/25/android-17-foldable-gaming-mode/?rand=7