<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Adobe AIR on Mobile</title>
	<atom:link href="http://blogs.adobe.com/airodynamics/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.adobe.com/airodynamics</link>
	<description></description>
	<lastBuildDate>Tue, 09 Apr 2013 13:09:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Adobe AIR Android applications move to Captive Runtime</title>
		<link>http://blogs.adobe.com/airodynamics/2013/03/11/android-shared-runtime-drop-support/</link>
		<comments>http://blogs.adobe.com/airodynamics/2013/03/11/android-shared-runtime-drop-support/#comments</comments>
		<pubDate>Mon, 11 Mar 2013 12:17:08 +0000</pubDate>
		<dc:creator>krati</dc:creator>
				<category><![CDATA[ADT]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Packaging]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/airodynamics/?p=879</guid>
		<description><![CDATA[Before we talk about this feature, let me give an overview of Shared and Captive runtimes. Shared Runtime &#8211; A runtime that is installed as a separate application and can be used by multiple applications. Captive or Embedded Runtime &#8211; &#8230; <a href="http://blogs.adobe.com/airodynamics/2013/03/11/android-shared-runtime-drop-support/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Before we talk about this feature, let me give an overview of Shared and Captive runtimes.</p>
<ul>
<li><b>Shared Runtime</b> &#8211; A runtime that is installed as a separate application and can be used by multiple applications.</li>
<li><b>Captive or Embedded Runtime</b> &#8211; A runtime that is embedded within the application and is only used by that one application.</li>
</ul>
<p>With shared runtime when an AIR Android application is launched a dialog is shown to install/update the runtime if AIR runtime is not installed or not updated, and this being an extra step is not a great experience for the application users.</p>
<p><a href="http://blogs.adobe.com/airodynamics/files/2013/03/Dialog.png"><img class="alignnone size-full wp-image-880" alt="Dialog" src="http://blogs.adobe.com/airodynamics/files/2013/03/Dialog.png" width="288" height="164" /></a></p>
<p><span id="more-879"></span></p>
<p>Starting AIR 3.7, packaging AIR applications for Android in any target will embed the AIR runtime in the application itself. So, this dialog will now not be seen for applications packaged from AIR 3.7 and onwards. This will allow applications to get a better installation experience, however the application size would increase by around 9MB. This is now parallel to iOS applications where also AIR runtime is embedded.</p>
<p><strong>Advantages of moving to applications with captive AIR runtime</strong>:</p>
<ul>
<li>AIR Android applications can now be installed seamlessly, without a separate runtime download.</li>
<li>Users will not be concerned with updating the runtime.</li>
<li>Developers can now control their applications to use a specific runtime version.</li>
</ul>
<p>The existing workflows for packaging Android applications from tools such as Flash Builder and Flash Professional remains unchanged. Internally however  these tools would create applications with AIR runtime embedded for all the targets.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/airodynamics/2013/03/11/android-shared-runtime-drop-support/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>External hosting of secondary SWFs for AIR apps on iOS</title>
		<link>http://blogs.adobe.com/airodynamics/2013/03/08/external-hosting-of-secondary-swfs-for-air-apps-on-ios/</link>
		<comments>http://blogs.adobe.com/airodynamics/2013/03/08/external-hosting-of-secondary-swfs-for-air-apps-on-ios/#comments</comments>
		<pubDate>Fri, 08 Mar 2013 14:48:04 +0000</pubDate>
		<dc:creator>Abhinav</dc:creator>
				<category><![CDATA[ADT]]></category>
		<category><![CDATA[Application Descriptor]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Multiple SWFs]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[externalswf]]></category>
		<category><![CDATA[hosting of secondary swfs]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/airodynamics/?p=865</guid>
		<description><![CDATA[Starting with AIR 3.7, application developers will be able to host their secondary SWFs on an external server and load them on demand as per their application logic. Till AIR 3.5, loading of only assets such as images, videos and &#8230; <a href="http://blogs.adobe.com/airodynamics/2013/03/08/external-hosting-of-secondary-swfs-for-air-apps-on-ios/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Starting with AIR 3.7, application developers will be able to host their secondary SWFs on an external server and load them on demand as per their application logic.</p>
<p>Till AIR 3.5, loading of only assets such as images, videos and SWFs without actionscript code, commonly referred as Actionscript Byte Code(ABC Code), from external server was supported. The workflow for the application developer for loading such assets from server resembles the diagram below :</p>
<p style="text-align: center;"> <a href="http://blogs.adobe.com/airodynamics/files/2013/03/AIR-3.5-Workflow.jpg"><img class="size-large wp-image-906 aligncenter" style="border: 2px solid black;" alt="AIR 3.5 Workflow" src="http://blogs.adobe.com/airodynamics/files/2013/03/AIR-3.5-Workflow-1024x438.jpg" width="640" height="273" /></a></p>
<p>With AIR 3.6, the feature for loading of locally packaged secondary SWFs containing ABC code was introduced. The detailed description about this feature and its usage can be found at this blog &#8211; &#8220;<a title="Packaging and loading of multiple SWFs for AIR apps on iOS" href="http://blogs.adobe.com/airodynamics/2012/11/09/packaging-and-loading-multiple-swfs-in-air-apps-on-ios/" target="_blank">Packaging and loading of multiple SWFs for AIR apps on iOS</a>&#8220;. The workflow for the application developer using this feature is described in the diagram below:</p>
<p><span id="more-865"></span></p>
<p style="text-align: center;"> <a href="http://blogs.adobe.com/airodynamics/files/2013/03/AIR-3.6-Workflow.jpg"><img class="size-large wp-image-908 aligncenter" style="border: 2px solid black;" alt="AIR 3.6 Workflow" src="http://blogs.adobe.com/airodynamics/files/2013/03/AIR-3.6-Workflow-1024x593.jpg" width="640" height="370" /></a></p>
<p>With AIR 3.7, the feature for external hosting of secondary SWFs has been introduced. The workflow for the application developers who want this feature would change slightly from AIR 3.6 and is shown below :</p>
<p style="text-align: center;"> <a href="http://blogs.adobe.com/airodynamics/files/2013/03/AIR-3.7-Workflow.jpg"><img class="size-large wp-image-907 aligncenter" style="border: 2px solid black;" alt="AIR 3.7 Workflow" src="http://blogs.adobe.com/airodynamics/files/2013/03/AIR-3.7-Workflow-1024x577.jpg" width="640" height="360" /></a></p>
<p>The developer needs to provide the url of the secondary stripped SWF in the URLRequest. The stripped SWF is obtained after the ADT packaging as described later in the blog post. A sample URL request for using this feature is :</p>
<pre>private var externalSwfUrl:String= "http://www.xyz.com/ExternalSwf.swf";
private var urlRequest:URLRequest = new URLRequest(externalSwfUrl);</pre>
<p>To use this feature, developer needs to specify a text file containing details of the SWF files to be stripped &amp; externally hosted. This text file contains line separated paths of SWFs, which are to be externally hosted. A sample text file describing 3 SWFs to be externally hosted  would look like :</p>
<pre>assets/Level1.swf
assets/Level2.swf
assets/Level3/asset/Level3.swf</pre>
<p>The name of the text file needs to be mentioned in the &lt;externalSwfs&gt; tag within the &lt;iPhone&gt; tag in the application descriptor as shown below :</p>
<pre>&lt;iPhone&gt;
       .
       .
       &lt;externalSwfs&gt;assets/SampleSWFInfoFile.txt&lt;/externalSwfs&gt;
       .
       .
&lt;/iPhone&gt;</pre>
<p>During command line packaging using AIR Developer Tool(ADT), the developer needs to specify the text file  just like an asset along with the set of SWF&#8217;s mentioned in the text file. A sample ADT  command for using this feature is:</p>
<pre>~/bin/adt -package -target ipa-app-store -provisioning-profile &lt;Provisioning Profile&gt; -storetype pkcs12 -keystore &lt;Certificate&gt; -storepass &lt;Password&gt; ResultantIPA.ipa SampleMainSwf-app.xml SampleMainSwf.swf assets/SampleSWFInfoFile.txt assets/Level1.swf assets/Level2.swf assets/Level3/asset/Level3.swf</pre>
<p>Or another variation of the above command is where all the SWFs to be externally hosted and the text file are present in the assets folder is as follows :</p>
<pre>~/bin/adt -package -target ipa-app-store -provisioning-profile &lt;Provisioning Profile&gt; -storetype pkcs12 -keystore &lt;Certificate&gt; -storepass &lt;Password&gt; ResultantIPA.ipa SampleMainSwf-app.xml SampleMainSwf.swf assets</pre>
<p>During IPA packaging,  ADT extracts the ABC code from all child SWFs, adds it to the final executable and generates stripped SWFs in the &#8220;externalStrippedSwfs&#8221; folder created in the current working directory. The directory structure within the &#8220;externalStrippedSwfs&#8221; folder remains the same as specified within the text file. The generated stripped SWF&#8217;s should then be externally hosted on a web server of developer&#8217;s choice.</p>
<p><strong>NOTE:</strong> The externalStrippedSwfs folder is not generated in the currently available release of Flash Builder 4.7/ Flash CS6. To enable generation of Stripped SWFs for external hosting, command line ADT packaging should be used.</p>
<p>A sample actionscript code which loads a secondary SWF  from an external server is described below :</p>
<pre>
package
{
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.net.URLRequest;
	import flash.system.ApplicationDomain;
	import flash.system.LoaderContext;

	public class SampleMainSwf extends Sprite
	{	
		private var externalLoader:Loader;
		private var url:String= "http://www.xyz.com/Level1.swf";
		private var urlRequest:URLRequest = new URLRequest(url);
		private var ldrContext:LoaderContext;

		public function SampleMainSwf()
		{	
			externalLoader = new Loader();
			externalLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
			externalLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
			ldrContext=new LoaderContext(false,ApplicationDomain.currentDomain,null);

			try
			{
				externalLoader.load(urlRequest, ldrContext);	
			}
			catch(e:Error)
			{
				trace("Error ID : "+e.errorID+"\nError Message : "+e.message);
			}
		}

		private function completeHandler(e:Event):void
		{	
			addChild(externalLoader);	
		}

		private function errorHandler(e:IOErrorEvent):void
		{
			trace("In IO ErrorEvent Handler");
		}

	}
}</pre>
<p><strong>POINTS TO NOTE :</strong></p>
<p>1. The stripped SWFs generated using this feature are different from pure asset SWFs. It must be noted that while pure asset SWFs are valid SWFs the stripped SWFs are invalid SWFs.</p>
<p>2. The SWF version of the ROOT.SWF must be &gt;= 20 to use this feature. If the SWF version is set to &lt;20, the stripped SWFs won&#8217;t be generated in the &#8216;externalStrippedSwfs&#8217; folder even if the SWF files have been specified in the text file.</p>
<p>3. It is recommended that this feature should not be used as a means for updating and displaying content in a dynamic manner. The externally hosted SWFs should not be replaced by any other stripped SWFs except the ones generated during IPA packaging. Any change in the secondary SWF requires a corresponding updation of stripped SWFs on external server.</p>
<p>4. All the SWFs specified in the text file should be passed during the ADT packaging as well.</p>
<p><strong>KNOWN ISSUES :</strong></p>
<p>1. External hosting of Flex SWF does not work and might cause the application to crash.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/airodynamics/2013/03/08/external-hosting-of-secondary-swfs-for-air-apps-on-ios/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Preventing Automatic Cloud Backup on iOS devices</title>
		<link>http://blogs.adobe.com/airodynamics/2013/02/13/preventing-automatic-cloud-backup-on-ios-devices/</link>
		<comments>http://blogs.adobe.com/airodynamics/2013/02/13/preventing-automatic-cloud-backup-on-ios-devices/#comments</comments>
		<pubDate>Wed, 13 Feb 2013 06:49:06 +0000</pubDate>
		<dc:creator>neha</dc:creator>
				<category><![CDATA[Apple Guidelines]]></category>
		<category><![CDATA[iCloud Backup]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/airodynamics/?p=854</guid>
		<description><![CDATA[According to the Apple guidelines, data that can be downloaded again or regenerated shall be stored in the &#60;APPLICATION_HOME&#62;/Library/Caches directory. So, with AIR 3.6, a new static property, File.cacheDirectory has been introduced, which points to this directory. Files stored in this directory are &#8230; <a href="http://blogs.adobe.com/airodynamics/2013/02/13/preventing-automatic-cloud-backup-on-ios-devices/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>According to the Apple guidelines, data that can be downloaded again or regenerated shall be stored in the &lt;APPLICATION_HOME&gt;/Library/Caches directory. So, with AIR 3.6, a new static property, File.cacheDirectory has been introduced, which points to this directory. Files stored in this directory are not backed up on the iCloud. Examples of files you should put in the Caches directory include database cache files and downloadable content, such as that used by magazine, newspaper, and map applications. On Mac OSX and Android, File.cacheDirectory points to the Caches directory ( &lt;APPLICATION_HOME&gt;/Library/Caches on Mac and &lt;APPLICATION_HOME&gt;/caches directory on Android). While on Windows, it points to the parent directory being used by File.createTempDirectory.</p>
<p><code>var myCacheFile: File = File.cacheDirectory.resolvePath("cacheFile.txt");<br />
</code></p>
<p><span id="more-854"></span></p>
<p>&nbsp;</p>
<p>There can be cases when a file or directory is required to be stored in a directory other than &lt;APPLICATION_HOME&gt;/Library/Caches directory, but still not required to be backed up on the iCloud, eg. files stored in the application storage directory. To address this issue, another property, preventBackup has been added to the File API. The default value of this property is false on all platforms and can be set to true only on iOS. When the property is set to true for a File object on iOS, the file/directory corresponding to that File object is not backed up on the iCloud. If the File object points to a directory on iOS, all files in that directory are not backed up (irrespective of the values of preventBackup for individual files/sub-directories of that directory). This property works on iOS 5.1 devices and later and does not work on the iOS Simulator. Files stored in APP_HOME/tmp/ or APP_HOME/Library/Caches directory are not backed up, irrespective of the value set for this property. On querying the value of preventBackup for a particular File object, the last set value of preventBackup or false (the default value) will be returned on iOS and all other platforms will continue to return false, even if explicitly set to true.</p>
<p><code> var file: File = File.applicationStorageDirectory.resolvePath("abc.txt");<br />
file.preventBackup = true;<br />
</code></p>
<p>The above properties will only work for application descriptor namespace 3.6 (or greater) and SWF version greater than 19.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/airodynamics/2013/02/13/preventing-automatic-cloud-backup-on-ios-devices/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Changed behavior of Shared Object on iOS in AIR 3.5</title>
		<link>http://blogs.adobe.com/airodynamics/2012/12/10/changed-behavior-of-shared-object-on-ios-in-air-3-5/</link>
		<comments>http://blogs.adobe.com/airodynamics/2012/12/10/changed-behavior-of-shared-object-on-ios-in-air-3-5/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 11:07:53 +0000</pubDate>
		<dc:creator>nimisha</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/airodynamics/?p=815</guid>
		<description><![CDATA[With AIR 3.5 the path of shared objects changed than it used to be in AIR 3.4, following illustrates the difference between paths: In AIR 3.4: AppName/Library/Application Support/com.namecompany.name/Local Store/ #SharedObjects/Filename.swf where Filename.swf comes from the &#60;Filename&#62; tag of app-xml. In &#8230; <a href="http://blogs.adobe.com/airodynamics/2012/12/10/changed-behavior-of-shared-object-on-ios-in-air-3-5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>With AIR 3.5 the path of shared objects changed than it used to be in AIR 3.4, following illustrates the difference between paths:<br />
In AIR 3.4:<br />
<code>AppName/Library/Application Support/com.namecompany.name/Local Store/ #SharedObjects/Filename.swf</code><br />
where Filename.swf comes from the &lt;Filename&gt; tag of app-xml.</p>
<p>In AIR 3.5:<br />
<code>AppName/Library/Application Support/com.namecompany.name/Local Store/ #SharedObjects/Content.swf</code><br />
where Content.swf comes from the &lt;Content&gt; tag of app-xml which contains<br />
the name of root SWF of app.</p>
<p>This issue is fixed in <a href="http://labs.adobe.com/technologies/flashruntimes/air/" target="_blank">3.6(labs)</a>, so when user will update his/her app from AIR 3.4 to 3.6, then application will not lose any data which is stored with shared object. While any new App which will be published with next release of AIR will have shared object path:<br />
<code>AppName/Library/Application Support/com.namecompany.name/Local Store/ #SharedObjects/Content.swf</code></p>
<p><strong>Workaround for AIR 3.5:</strong></p>
<p>For those app-developers who are going to publish their app with AIR 3.5 there is a workaround for them.Since now shared object path is taken from tag &lt;Content&gt; rather than tag &lt;Filename&gt; so you can rename your root SWF to Filename.swf and also provide the same to tag. For example:<br />
In AIR 3.4 :<br />
&lt;Filename&gt;MysharedObject&lt;/Filename&gt;<br />
&lt;Content&gt;Root.swf&lt;/Content&gt;</p>
<p>Now in AIR 3.5, rename it like following:<br />
&lt;Filename&gt;MysharedObject&lt;/Filename&gt;<br />
&lt;Content&gt;MysharedObject.swf&lt;/Content&gt;</p>
<p>and also rename Root.swf to MysharedObject.swf.<br />
By this way the data of the app will be saved when it will be updated from AIR 3.4 to AIR 3.5.</p>
<p>We would like to hear your feedback, please let us know if you face any issues.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/airodynamics/2012/12/10/changed-behavior-of-shared-object-on-ios-in-air-3-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excluding Devices From Requested Display Resolution Mode</title>
		<link>http://blogs.adobe.com/airodynamics/2012/12/07/excluding-devices-from-requested-display-resolution-mode/</link>
		<comments>http://blogs.adobe.com/airodynamics/2012/12/07/excluding-devices-from-requested-display-resolution-mode/#comments</comments>
		<pubDate>Fri, 07 Dec 2012 09:43:46 +0000</pubDate>
		<dc:creator>Varun Bhatia</dc:creator>
				<category><![CDATA[Application Descriptor]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[requestedDisplayResolution]]></category>
		<category><![CDATA[Retina]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[retina]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/airodynamics/?p=787</guid>
		<description><![CDATA[RequestedDisplayResolution tag in application descriptor allows the developer to choose between standard or high resolution on iOS devices with high resolution screen. High resolution screens were earlier only available in iPhone and iPod 4th Generation and above. Recently released models &#8230; <a href="http://blogs.adobe.com/airodynamics/2012/12/07/excluding-devices-from-requested-display-resolution-mode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><em>RequestedDisplayResolution</em> tag in application descriptor allows the developer to choose between standard or high resolution on iOS devices with high resolution screen. High resolution screens were earlier only available in iPhone and iPod 4th Generation and above. Recently released models on iPad namely iPad 3rd &amp; 4th Generation also boast of a high resolution screen with 2048&#215;1536 resolution. Specifying a &#8216;high&#8217; value in <em>requestedDisplayResolution</em> tag enables the retina mode in the all iOS devices having the high resolution screen. Prior to AIR 3.6, there was no way to enable or disable retina mode on some specific devices. There existed some workarounds but they came with some trade offs of not able to use the iOS 6 specific features.</p>
<p style="text-align: justify;">A new attribute &#8216;<em>excludeDevices&#8217; </em>has been added in AIR 3.6  in the <em>requestedDisplayResolution</em> tag in the application descriptor. Developers will now be able to explicitly disable the specified display resolution on one or more iOS devices using this attribute.</p>
<pre><span style="color: #000000;">&lt;requestedDisplayResolution excludeDevices="</span><span style="color: #800000;">iPhone4,1</span><span style="color: #000000;">"&gt;high&lt;/requestedDisplayResolution&gt;</span></pre>
<h2><span id="more-787"></span></h2>
<p style="text-align: justify;">The value specified to this attribute is a space separated list of device model identifiers. The complete list of device model identifiers is given at the end of page. Developers can choose to either specify the complete list of devices model identifiers or provide a common prefix of a model identifier to be exlcluded from the specified resolution mode. An exact match of the specified device model identifier is done with the current device when complete device model identifier is specified as the value to <em>excludeDevices</em> attribute. Prefix matching is done when complete device model identifier is not provided. Thus, developers will have the choice to exclude</p>
<ul>
<li>a particular device like only iPhone 5th Generation</li>
<li>multiple devices like iPhone 5thGeneration and iPod 5th Generation</li>
<li>a particular device model like iPad, iPhone or iPod.</li>
</ul>
<h2>Examples</h2>
<p>1. The following example disables retina mode only on iPhone 5th Generation.</p>
<pre>  <span style="color: #0a0a0a;">&lt;requestedDisplayResolution excludeDevices="<span style="color: #800000;">iPhone5,1</span>"&gt;high&lt;/requestedDisplayResolution&gt;</span></pre>
<p>&nbsp;</p>
<p>2. The following examples disable the retina mode only on iPhone and iPod 5th Generation.</p>
<pre>  <span style="color: #0a0a0a;">&lt;requestedDisplayResolution excludeDevices="<span style="color: #800000;">iPhone4,1 iPod5,1</span>"&gt;high&lt;/requestedDisplayResolution&gt;</span></pre>
<p>&nbsp;</p>
<p>3. The following example disables retina mode on all iPads.</p>
<pre>  <span style="color: #0a0a0a;">&lt;requestedDisplayResolution excludeDevices="<span style="color: #800000;">iPad</span>"&gt;high&lt;/requestedDisplayResolution&gt;</span></pre>
<p>&nbsp;</p>
<p>4. The following example disables the retina mode only on iPad 3rd Generation and iPad 4th Generation.</p>
<pre>  <span style="color: #0a0a0a;">&lt;requestedDisplayResolution excludeDevices="<span style="color: #800000;">iPad3</span>"&gt;high&lt;/requestedDisplayResolution&gt;</span></pre>
<p>&nbsp;</p>
<p>5. The following example enables retina mode only on iPhone and iPods.</p>
<pre>  <span style="color: #0a0a0a;">&lt;requestedDisplayResolution excludeDevices="<span style="color: #800000;">iPod iPhone</span>"&gt;standard&lt;/requestedDisplayResolution&gt;</span></pre>
<h2></h2>
<h2>Device Model Identifiers List</h2>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="132">
<p align="center"><strong>Device Name</strong></p>
</td>
<td valign="top" width="227">
<p align="center"><strong>Device Model Identifier</strong></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPod4,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPod Touch 4<sup>th</sup> Generation</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPod5,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPod Touch 5<sup>th</sup> Generation</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPhone2,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPhone 3GS</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPhone3,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPhone 4</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPhone3,2&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPhone 4 CDMA</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPhone4,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPhone 4S</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPhone5,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPhone 5</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad1,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 1<sup>st</sup> Generation (Wifi)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad2,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 2<sup>nd</sup> Generation (Wifi)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad2,2&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 2<sup>nd</sup> Generation (GSM)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad2,3&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 2<sup>nd</sup> Generation(CDMAV)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad2,4&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 2<sup>nd</sup> Generation(CDMAS)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad2,5&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad Mini (Wifi)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad3,1&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 3<sup>rd</sup> Generation (Wifi)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad3,2&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 3<sup>rd</sup> Generation (CDMA)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad3,3&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 3<sup>rd</sup> Generation (GSM)</span></p>
</td>
</tr>
<tr>
<td valign="top" width="132"><span style="color: #000000;">&#8220;iPad3,4&#8243;</span></td>
<td valign="top" width="227">
<p align="center"><span style="color: #000000;">iPad 4<sup>th</sup> Generation (Wifi)</span></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Please Note that</p>
<ul>
<li style="text-align: justify;">This attribute will be allowed only with the application descriptor namespace 3.6 and higher. AIR 3.6 is currently available only in the labs release. This labs release can be downloaded from <a href="http://labs.adobe.com/technologies/flashruntimes/air/">here</a>.</li>
<li style="text-align: justify;">This attribute wont have any effect while running apps on AIR simulator. Simulator will only imitate the value mentioned in the application descriptor.</li>
<li style="text-align: justify;">The device model identifiers can also be verified using <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Capabilities.html#os">System.Capabilities.os</a> property.</li>
</ul>
<p>&nbsp;</p>
<h2><!--more--></h2>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/airodynamics/2012/12/07/excluding-devices-from-requested-display-resolution-mode/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
