Setting Up the Android Manifest File

Updating the Manifest File
Adding Android Manifest Permission to the Manifest File
Adding Android Manifest Entries to the Manifest File

Updating the Manifest File

The Air application needs to define the Android Manifest content in the application configuration file (typically APPLICATIONNAME-app.xml ). You will need to update the Android aspect of your application in the following way to get the SDK running:

<android>
	<manifestAdditions><![CDATA[
    		<manifest android:installLocation="auto">

			<uses-permission android:name="android.permission.INTERNET"/>
			<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
			<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
			<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

			<application android:allowBackup="true" android:hardwareAccelerated="true">
				[...]
			</application>
		</manifest>
	]]></manifestAdditions>
</android>
  • INTERNET
    Most basic permission
  • ACCESS_NETWORK_STATE
    Recommended permission to avoid making requests when the network is down
  • WRITE_EXTERNAL_STORAGE
    Recommended permission to enable the video precaching service

Adding Android Manifest Permission

You will also need to add the following individual permissions information after the “manifest”-tag into your Manifest:

Fyber SDK Permission
Admob Manifest Permission
Adcolony Manifest Permission
AppLovin Manifest Permission
Chartboost Manifest Permission
Facebook Manifest Permission
Flurry Manifest Permission
HyprMX Manifest Permission
InMobi Manifest Permission
Mediabrix Manifest Permission
Millennial Manifest Permission
Tremor Manifest Permission
UnityAds Manifest Permission
Vungle Manifest Permission

Fyber SDK Permission

<uses-permission android:name="android.permission.INTERNET"/>

<!-- Used to avoid sending a request if there is no connectivity. -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<!-- Used for the precaching service -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Admob Permission

<!-- Used to request interstitial ads. -->
<uses-permission android:name="android.permission.INTERNET"/>

<!-- Used to avoid sending an ad request if there is no connectivity. -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

AdColony Permission

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />

AppLovin Permission

<!-- These permissions are mandatory to run AppLovin SDK -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- These permissions are strongly recommended and will result in higher performance -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Chartboost Permission

<!-- Chartboost -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- Chartboost optional (recommended) permissions -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Facebook Permission

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Flurry Permission

<!--required permission-->
<uses-permission android:name="android.permission.INTERNET" />
<!--optional permission - highly recommended-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--optional permission -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- External storage is used for video pre-caching features  -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

HyprMX Permission

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

InMobi Permission

<!-- InMobi required permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- InMobi optional permissions -->
<!-- Permissions listed below are not mandatory - adding them will improve InMobi's ads targeting and user experience. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"/>
<!-- The permissions listed above can be removed without affecting the standard behaviour of InMobi SDK. -->

Mediabrix Permission

<!-- Mediabrix's required permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- Mediabrix's optional permissions -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>

Millennial Permission

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
<uses-permission android:name="android.permission.NFC"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>

Tremor Permission

<!-- Tremor Required Permissions-->
<uses-permission android:name= "android.permission.INTERNET" />
<uses-permission android:name= "android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name= "android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

<!-- Tremor Optional Permissions -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />

UnityAds Permission

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Vungle Permission

<!-- permissions to download and cache video ads for playback -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Adding Android Manifest Entries

To ensure that all aspects of the Fyber SDK run seamlessly, you will also need to add the following individual Activity information into your Manifest:

Offer Wall Manifest Entries
Rewarded Video Manifest Entries
Interstitial Manifest Entries
Fyber Wrapper Manifest Entries
Pre-caching Service Manifest Entries
Google Play Advertisement ID Entries
Admob Manifest Entries
Adcolony Manifest Entries
AppLovin Manifest Entries
Chartboost Manifest Entries
Facebook Manifest Entries
Flurry Manifest Entries
HyprMX Manifest Entries
InMobi Manifest Entries
Mediabrix Manifest Entries
Millennial Manifest Entries
Tremor Manifest Entries
UnityAds Manifest Entries
Vungle Manifest Entries

Offer Wall

<!-- Fyber OfferWall Activity -->
<activity android:name="com.sponsorpay.publisher.ofw.SPOfferWallActivity"
	android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
	android:screenOrientation="behind" />

Note: If your application is locked in a certain orientation, i.e. landscape, set your screenOrientation property to that orientation.

Rewarded Video

<!-- Fyber Rewarded Video Activity -->
<activity android:name="com.fyber.sdk.wrapper.FYBRewardedVideoAirActivity"
	android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
	android:hardwareAccelerated="true" />

Interstitial

<!-- Fyber Interstitial Activity -->
<activity android:name="com.sponsorpay.publisher.interstitial.SPInterstitialActivity"
	android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
	android:hardwareAccelerated="true" />

Fyber Wrapper

<!-- Fyber Wrapper Activity -->
<activity android:name="com.fyber.sdk.wrapper.FYBWrapperActivity"
	android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
	android:hardwareAccelerated="true" />

Pre-caching service

<!-- Fyber Pre-caching service -->
<service android:name="com.sponsorpay.publisher.mbe.player.caching.SPCacheVideoDownloadService" />

Google Play Services

<!-- Google Play -->
<meta-data android:name="com.google.android.gms.version"
	android:value="@integer/google_play_services_version" />

Please note: If you are using Google Play Services, please make sure to import the playservices-<version>.ane file into your project.

Admob Activity

<!-- AdMob -->
<activity android:name="com.google.android.gms.ads.AdActivity"
	android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

AdColony Activity

<!-- AdColony -->
<activity android:name="com.jirbo.adcolony.AdColonyOverlay"
	android:configChanges="keyboardHidden|orientation|screenSize"
	android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

<activity android:name="com.jirbo.adcolony.AdColonyFullscreen"
	android:configChanges="keyboardHidden|orientation|screenSize"
	android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />

<activity android:name="com.jirbo.adcolony.AdColonyBrowser"
	android:configChanges="keyboardHidden|orientation|screenSize"
	android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />

AppLovin Activity

<!-- AppLovin -->
<meta-data android:name="applovin.sdk.key"
	android:value="YOUR-Publisher-KEY" />

<meta-data android:name="applovin.sdk.verbose_logging"
	android:value="true" />

<activity android:name="com.applovin.adview.AppLovinInterstitialActivity" />

<activity android:name="com.applovin.adview.AppLovinConfirmationActivity" />

Chartboost Activity

<!-- ChartBoost -->
<activity android:name="com.chartboost.sdk.CBImpressionActivity"
	android:configChanges="keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize"
	android:excludeFromRecents="true"
	android:theme="@android:style/Theme.Translucent.NoTitleBar" />

Facebook Activity

<!-- Facebook -->
<activity android:name="com.facebook.ads.InterstitialAdActivity"
	android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

Flurry Activity

<!-- Flurry -->  
<activity android:name="com.flurry.android.FlurryFullscreenTakeoverActivity"
	android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize"
	android:hardwareAccelerated="true" />

HyprMX Activity

<!-- HyprMX -->
<activity android:name="com.sponsorpay.mediation.hyprmx.mbe.HyprMXVideoActivity"
	android:configChanges="orientation|screenSize|keyboardHidden|keyboard|smallestScreenSize|uiMode|fontScale|screenLayout|locale" />

<activity android:name="com.hyprmx.android.sdk.activity.HyprMXOfferViewerActivity"
	android:configChanges="orientation|screenSize|keyboardHidden|keyboard|smallestScreenSize|uiMode|fontScale|screenLayout|locale"
	android:label="HyprMX SDK"
	android:launchMode="singleTop"
	android:theme="@android:style/Theme.NoTitleBar" />

<activity android:name="com.hyprmx.android.sdk.activity.HyprMXRequiredInformationActivity"
	android:theme="@android:style/Theme.NoTitleBar" />

<activity android:name="com.hyprmx.android.sdk.activity.HyprMXSplashActivity"
	android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<activity android:name="com.hyprmx.android.sdk.activity.HyprMXOfferListActivity"
	android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<activity android:name="com.hyprmx.android.sdk.activity.HyprMXNoOffersActivity"
	android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<activity android:name="com.hyprmx.android.sdk.activity.HyprMXWebTrafficActivity"
	android:configChanges="orientation|screenSize|keyboardHidden|keyboard|smallestScreenSize|uiMode|fontScale|screenLayout|locale"
	android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<service android:name="com.hyprmx.android.sdk.service.ApplicationInstallService"
	android:enabled="true"
	android:exported="false"
	android:stopWithTask="false" />

InMobi Activity

<!-- InMobi -->
<activity android:name="com.inmobi.androidsdk.IMBrowserActivity"
	android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize"
	android:hardwareAccelerated="true"
	android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

<service android:name="com.inmobi.commons.internal.ActivityRecognitionManager"
	android:enabled="true" />

<receiver android:name="com.inmobi.commons.analytics.androidsdk.IMAdTrackerReceiver"
	android:enabled="true"
	android:exported="true">
	<intent-filter>
		<action android:name="com.android.vending.INSTALL_REFERRER" />
		<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
		<action android:name="com.inmobi.share.id" />
	</intent-filter>
</receiver>

Mediabrix Activity

<!-- MediaBrix -->
<meta-data android:name="com.google.android.gms.version"
	android:value="@integer/google_play_services_version" />

<activity android:name="com.mediabrix.android.service.AdViewActivity"
	android:configChanges="orientation|screenSize|keyboard"
	android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

<activity android:name="com.sponsorpay.mediation.mediabrix.mbe.MediaBrixVideoHelperActivity"
	android:configChanges="orientation|screenSize|keyboard"
	android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

<service android:name="com.mediabrix.android.service.MediaBrixService" />

Millennial Activity

<!-- Millennial -->
<activity android:name="com.millennialmedia.android.MMActivity"
	android:configChanges="keyboardHidden|orientation|keyboard"
	android:theme="@android:style/Theme.Translucent.NoTitleBar" />

Tremor Activity

<!-- Tremor -->
<activity android:name="com.tremorvideo.sdk.android.videoad.Playvideo"
	android:configChanges="keyboardHidden|orientation|screenSize"
	android:exported="false"
	android:hardwareAccelerated="false">
	<intent-filter>
		<action android:name="com.tremorvideo.sdk.android.videoad.Playvideo" />
		<category android:name="android.intent.category.EMBED" />
	</intent-filter>
</activity>

<activity android:name="com.sponsorpay.mediation.tremor.mbe.TremorVideoActivity"
	android:configChanges="keyboardHidden|orientation|screenSize" />

<activity android:name="com.sponsorpay.mediation.tremor.interstitial.TremorInterstitialActivity"
	android:configChanges="keyboardHidden|orientation|screenSize" />

UnityAds Activity

<!-- UnityAds -->
<activity
	android:name="com.unity3d.ads.android.view.UnityAdsFullscreenActivity"
	android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
	android:hardwareAccelerated="true"
	android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

Vungle Activity

<!-- Vungle -->
<activity android:name="com.vungle.publisher.FullScreenAdActivity"
	android:configChanges="keyboardHidden|orientation|screenSize"
	android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

<service android:name="com.vungle.publisher.VungleService"
	android:exported="false" />