Settings API

  • Revision slug: WebAPI/Settings
  • Revision title: Settings
  • Revision id: 381555
  • Created:
  • Creator: Jeremie
  • Is current revision? No
  • Comment

Revision Content

{{ draft }}

{{ B2GOnlyHeader2('certified') }}

Summary

The Settings API is a way to access, change and listen to change of any device's settings. As device's settings carry a lot of sensitive inforamtion that can jeopardize the system, only certified application can use that API.

Using settings

Settings can be manipulated through the {{domxref("window.navigator.mozSettings","naviator.mozSettings")}} object which is an instance of the {{domxref("SettingsManager")}} interface.

Accessing settings

To access a setting, it requires to create a lock first by using the {{domxref("SettingsManager.createLock()","createLock()")}} method. Because several application can access and change a setting at the same time, it's necessary to ensure each application will not compete with another application. To that end, by creating a lock, each application is sure that it will be the only application accessing the settings at that specific moment.

Once the application has a lock, it can read any settings by using the {{domxref("SettingsLock.get()","get()")}} method. This method return a {{domxref("DOMRequest")}} object to handle the success or failure of the operation. In all cases, the lock will be realese to allow other applications to access the settings as soon as the request's success or error are triggered. If necessary, it's possible to know if the lock has been released by using the lock's {{domxref("SettingsLock.closed","closed")}} property.

var lock    = navigator.mozSettings.createLock();
var setting = lock.get('wifi.enabled');

setting.onsuccess = function () {
  console.log('wifi.enabled: ' + setting.result);
}

setting.onerror = function () {
  console.warn('An error occured: ' + setting.error);
}

Changing settings

To change the value of a given settings, it's exactly the same as accessing it. But in that case, we have to use the {{domxref("SettingsLock.set()","set()")}} method, which also return a {{domxref("DOMRequest")}} object.

The {{domxref("SettingsLock.set()","set()")}} method expect an object as parameter. This object is a collection of key/value where each key represent a setting's name and each value its new value. See below for a list of the possible available settings name for Firefox OS.

var lock = navigator.mozSettings.createLock();
var result = lock.set({
  'wifi.enabled': true
});
 
result.onsuccess = function () {
  console.log("the settings has been changed");
}
 
result.onerror = function () {
  console.log("An error occure, the settings remain unchanged");
}

Listening for change in settings

Beyond reading and changing settings, applications can also listen for any change on settings. Each time a setting is change, the system trigger a {{event("settingchange")}} event. This event is a {{domxref("MozSettingEvent")}}, which is a regular event extended with two extra properties:

  • {{domxref("MozSettingEvent.settingName","settingName")}} which provide the name of the setting that has been changed.
  • {{domxref("MozSettingEvent.settingValue","settingValue")}} which provide the new value of the setting.

The {{event("settingchange")}} event can be listen by using the {{domxref("SettingsManager.onsettingchange")}} (it listen to all changes), or if we need to attach event handler to a specific setting, by using the {{domxref("SettingsManager.addObserver()")}} method.

function handleWifi(event) {
  if (event.settingValue === true) {
    console.log("Hey! I can download that crazy heavy 4Go file")
  } else {
    console.log("Oh! I should stop downloading that crapy 4Go file")
  }
}

navigator.mozSettings.addObserver('wifi.enabled', handleWifi);

Firefox OS settings

Thus are the settings currently available in any default build of Firefox OS.

Setting name type default value
accessibility.invert boolean false
accessibility.screenreader boolean false
alarm.enabled boolean false
app.reportCrashes string ask
app.update.interval number 86400
audio.volume.alarm number 15
audio.volume.bt_sco number 15
audio.volume.dtmf number 15
audio.volume.content number 15
audio.volume.notification number 15
audio.volume.tts number 15
audio.volume.telephony number 5
bluetooth.enabled boolean false
bluetooth.debugging.enabled boolean false
camera.shutter.enabled boolean true
clear.remote-windows.data boolean false
debug.grid.enabled boolean false
debug.oop.disabled boolean false
debug.fps.enabled boolean false
debug.ttl.enabled boolean false
debug.log-animations.enabled boolean false
debug.paint-flashing.enabled boolean false
debug.peformancedata.shared boolean false
deviceinfo.firmware_revision string  
deviceinfo.hardware string  
deviceinfo.os string  
deviceinfo.platform_build_id string  
deviceinfo.platform_version string  
deviceinfo.software string  
deviceinfo.update_channel string  
gaia.system.checkForUpdates boolean false
geolocation.enabled boolean true
keyboard.layouts.english boolean true
keyboard.layouts.dvorak boolean false
keyboard.layouts.otherlatins boolean false
keyboard.layouts.cyrillic boolean false
keyboard.layouts.arabic boolean false
keyboard.layouts.hebrew boolean false
keyboard.layouts.zhuyin boolean false
keyboard.layouts.pinyin boolean false
keyboard.layouts.greek boolean false
keyboard.layouts.japanese boolean false
keyboard.layouts.polish boolean false
keyboard.layouts.portuguese boolean false
keyboard.layouts.spanish boolean false
keyboard.vibration boolean false
keyboard.clicksound boolean false
keyboard.autocorrect boolean true
keyboard.wordsuggestion boolean true
keyboard.current string en
language.current string en-US
lockscreen.passcode-lock.code string 0000
lockscreen.passcode-lock.timeout number 0
lockscreen.passcode-lock.enabled boolean false
lockscreen.notifications-preview.enabled boolean true
lockscreen.enabled boolean true
lockscreen.locked boolean true
lockscreen.unlock-sound.enabled boolean false
mail.sent-sound.enabled boolean true
message.sent-sound.enabled boolean true
operatorvariant.mcc string 0
operatorvariant.mnc string 0
ril.iccInfo.mbdn string  
ril.sms.strict7BitEncoding.enabled boolean false
ril.cellbroadcast.searchlist string  
debug.console.enabled boolean false
phone.ring.keypad boolean true
powersave.enabled boolean false
powersave.threshold number 0
privacy.donottrackheader.enabled boolean false
ril.callwaiting.enabled    
ril.cf.enabled boolean false
ril.data.enabled boolean false
ril.data.apn string  
ril.data.carrier string  
ril.data.passwd string  
ril.data.httpProxyHost string  
ril.data.httpProxyPort number 0
ril.data.mmsc string  
ril.data.mmsproxy string  
ril.data.mmsport number 0
ril.data.roaming_enabled boolean false
ril.data.user string  
ril.mms.apn string  
ril.mms.carrier string  
ril.mms.httpProxyHost string  
ril.mms.httpProxyPort string  
ril.mms.mmsc string  
ril.mms.mmsport string  
ril.mms.mmsproxy string  
ril.mms.passwd string  
ril.mms.user string  
ril.radio.preferredNetworkType string  
ril.radio.disabled boolean false
ril.supl.apn string  
ril.supl.carrier string  
ril.supl.httpProxyHost string  
ril.supl.httpProxyPort string  
ril.supl.passwd string  
ril.supl.user string  
ril.sms.strict7BitEncoding.enabled boolean false
ring.enabled boolean true
screen.automatic-brightness boolean true
screen.brightness number 1
screen.timeout number 60
tethering.usb.enabled boolean false
tethering.usb.ip string 192.168.0.1
tethering.usb.prefix string 24
tethering.usb.dhcpserver.startip string 192.168.0.10
tethering.usb.dhcpserver.endip string 192.168.0.30
tethering.wifi.enabled boolean false
tethering.wifi.ip string 192.168.1.1
tethering.wifi.prefix string 24
tethering.wifi.dhcpserver.startip string 192.168.1.10
tethering.wifi.dhcpserver.endip string 192.168.1.30
tethering.wifi.ssid string FirefoxHotspot
tethering.wifi.security.type string open
tethering.wifi.security.password string 1234567890
tethering.wifi.connectedClients number 0
tethering.usb.connectedClients number 0
time.nitz.automatic-update.enabled boolean true
time.timezone    
ums.enabled boolean false
ums.mode number 0
vibration.enabled boolean true
wifi.enabled boolean true
wifi.screen_off_timeout number 600000
wifi.disabled_by_wakelock boolean false
wifi.notification boolean false
wifi.connect_via_settings boolean false
icc.displayTextTimeout number 40000
icc.inputTextTimeout number 40000

Specification

Not part of any specification yet; however, this API will be discuss at W3C as part of the System Applications Working Group.

See also

  • {{domxref("window.navigator.mozSettings","naviator.mozSettings")}}
  • {{domxref("SettingsManager")}}
  • {{domxref("SettingsLock")}}
  • {{domxref("MozSettingEvent")}}

Revision Source

<p>{{ draft }}</p>
<p>{{ B2GOnlyHeader2('certified') }}</p>
<h2 id="Summary">Summary</h2>
<p>The Settings API is a way to access, change and listen to change of any device's settings. As device's settings carry a lot of sensitive inforamtion that can jeopardize the system, only certified application can use that API.</p>
<h2 id="Using_settings">Using settings</h2>
<p>Settings can be manipulated through the {{domxref("window.navigator.mozSettings","naviator.mozSettings")}} object which is an instance of the {{domxref("SettingsManager")}} interface.</p>
<h3 id="Accessing_settings">Accessing settings</h3>
<p>To access a setting, it requires to create a lock first by using the {{domxref("SettingsManager.createLock()","createLock()")}} method. Because several application can access and change a setting at the same time, it's necessary to ensure each application will not compete with another application. To that end, by creating a lock, each application is sure that it will be the only application accessing the settings at that specific moment.</p>
<p>Once the application has a lock, it can read any settings by using the {{domxref("SettingsLock.get()","get()")}} method. This method return a {{domxref("DOMRequest")}} object to handle the success or failure of the operation. In all cases, the lock will be realese to allow other applications to access the settings as soon as the request's success or error are triggered. If necessary, it's possible to know if the lock has been released by using the lock's {{domxref("SettingsLock.closed","closed")}} property.</p>
<pre class="brush: js">
var lock    = navigator.mozSettings.createLock();
var setting = lock.get('wifi.enabled');

setting.onsuccess = function () {
  console.log('wifi.enabled: ' + setting.result);
}

setting.onerror = function () {
  console.warn('An error occured: ' + setting.error);
}
</pre>
<h3 id="Changing_settings">Changing settings</h3>
<p>To change the value of a given settings, it's exactly the same as accessing it. But in that case, we have to use the {{domxref("SettingsLock.set()","set()")}} method, which also return a {{domxref("DOMRequest")}} object.</p>
<p>The {{domxref("SettingsLock.set()","set()")}} method expect an object as parameter. This object is a collection of key/value where each key represent a setting's name and each value its new value. See below for a list of the possible available settings name for Firefox OS.</p>
<pre class="brush: js">
var lock = navigator.mozSettings.createLock();
var result = lock.set({
  'wifi.enabled': true
});
 
result.onsuccess = function () {
  console.log("the settings has been changed");
}
 
result.onerror = function () {
  console.log("An error occure, the settings remain unchanged");
}</pre>
<h3 id="Listening_for_change_in_settings">Listening for change in settings</h3>
<p>Beyond reading and changing settings, applications can also listen for any change on settings. Each time a setting is change, the system trigger a {{event("settingchange")}} event. This event is a {{domxref("MozSettingEvent")}}, which is a regular event extended with two extra properties:</p>
<ul>
  <li>{{domxref("MozSettingEvent.settingName","settingName")}} which provide the name of the setting that has been changed.</li>
  <li>{{domxref("MozSettingEvent.settingValue","settingValue")}} which provide the new value of the setting.</li>
</ul>
<p>The {{event("settingchange")}} event can be listen by using the {{domxref("SettingsManager.onsettingchange")}} (it listen to all changes), or if we need to attach event handler to a specific setting, by using the {{domxref("SettingsManager.addObserver()")}} method.</p>
<pre class="brush: js">
function handleWifi(event) {
  if (event.settingValue === true) {
    console.log("Hey! I can download that crazy heavy 4Go file")
  } else {
    console.log("Oh! I should stop downloading that crapy 4Go file")
  }
}

navigator.mozSettings.addObserver('wifi.enabled', handleWifi);
</pre>
<h2 id="Firefox_OS_settings">Firefox OS settings</h2>
<p>Thus are the settings currently available in any default build of Firefox OS.</p>
<table class="standard-table">
  <thead>
    <tr>
      <th scope="col">Setting name</th>
      <th scope="col">type</th>
      <th scope="col">default value</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>accessibility.invert</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>accessibility.screenreader</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>alarm.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>app.reportCrashes</td>
      <td>string</td>
      <td><code>ask</code></td>
    </tr>
    <tr>
      <td>app.update.interval</td>
      <td>number</td>
      <td>86400</td>
    </tr>
    <tr>
      <td>audio.volume.alarm</td>
      <td>number</td>
      <td>15</td>
    </tr>
    <tr>
      <td>audio.volume.bt_sco</td>
      <td>number</td>
      <td>15</td>
    </tr>
    <tr>
      <td>audio.volume.dtmf</td>
      <td>number</td>
      <td>15</td>
    </tr>
    <tr>
      <td>audio.volume.content</td>
      <td>number</td>
      <td>15</td>
    </tr>
    <tr>
      <td>audio.volume.notification</td>
      <td>number</td>
      <td>15</td>
    </tr>
    <tr>
      <td>audio.volume.tts</td>
      <td>number</td>
      <td>15</td>
    </tr>
    <tr>
      <td>audio.volume.telephony</td>
      <td>number</td>
      <td>5</td>
    </tr>
    <tr>
      <td>bluetooth.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>bluetooth.debugging.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>camera.shutter.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>clear.remote-windows.data</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>debug.grid.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>debug.oop.disabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>debug.fps.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>debug.ttl.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>debug.log-animations.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>debug.paint-flashing.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>debug.peformancedata.shared</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>deviceinfo.firmware_revision</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>deviceinfo.hardware</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>deviceinfo.os</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>deviceinfo.platform_build_id</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>deviceinfo.platform_version</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>deviceinfo.software</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>deviceinfo.update_channel</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>gaia.system.checkForUpdates</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>geolocation.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.english</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.dvorak</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.otherlatins</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.cyrillic</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.arabic</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.hebrew</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.zhuyin</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.pinyin</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.greek</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.japanese</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.polish</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.portuguese</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.layouts.spanish</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.vibration</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.clicksound</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>keyboard.autocorrect</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>keyboard.wordsuggestion</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>keyboard.current</td>
      <td>string</td>
      <td><code>en</code></td>
    </tr>
    <tr>
      <td>language.current</td>
      <td>string</td>
      <td><code>en-US</code></td>
    </tr>
    <tr>
      <td>lockscreen.passcode-lock.code</td>
      <td>string</td>
      <td><code>0000</code></td>
    </tr>
    <tr>
      <td>lockscreen.passcode-lock.timeout</td>
      <td>number</td>
      <td>0</td>
    </tr>
    <tr>
      <td>lockscreen.passcode-lock.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>lockscreen.notifications-preview.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>lockscreen.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>lockscreen.locked</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>lockscreen.unlock-sound.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>mail.sent-sound.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>message.sent-sound.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>operatorvariant.mcc</td>
      <td>string</td>
      <td><code>0</code></td>
    </tr>
    <tr>
      <td>operatorvariant.mnc</td>
      <td>string</td>
      <td><code>0</code></td>
    </tr>
    <tr>
      <td>ril.iccInfo.mbdn</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.sms.strict7BitEncoding.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>ril.cellbroadcast.searchlist</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>debug.console.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>phone.ring.keypad</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>powersave.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>powersave.threshold</td>
      <td>number</td>
      <td>0</td>
    </tr>
    <tr>
      <td>privacy.donottrackheader.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>ril.callwaiting.enabled</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.cf.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>ril.data.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>ril.data.apn</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.data.carrier</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.data.passwd</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.data.httpProxyHost</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.data.httpProxyPort</td>
      <td>number</td>
      <td>0</td>
    </tr>
    <tr>
      <td>ril.data.mmsc</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.data.mmsproxy</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.data.mmsport</td>
      <td>number</td>
      <td>0</td>
    </tr>
    <tr>
      <td>ril.data.roaming_enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>ril.data.user</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.apn</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.carrier</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.httpProxyHost</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.httpProxyPort</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.mmsc</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.mmsport</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.mmsproxy</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.passwd</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.mms.user</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.radio.preferredNetworkType</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.radio.disabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>ril.supl.apn</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.supl.carrier</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.supl.httpProxyHost</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.supl.httpProxyPort</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.supl.passwd</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.supl.user</td>
      <td>string</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ril.sms.strict7BitEncoding.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>ring.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>screen.automatic-brightness</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>screen.brightness</td>
      <td>number</td>
      <td>1</td>
    </tr>
    <tr>
      <td>screen.timeout</td>
      <td>number</td>
      <td>60</td>
    </tr>
    <tr>
      <td>tethering.usb.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>tethering.usb.ip</td>
      <td>string</td>
      <td><code>192.168.0.1</code></td>
    </tr>
    <tr>
      <td>tethering.usb.prefix</td>
      <td>string</td>
      <td><code>24</code></td>
    </tr>
    <tr>
      <td>tethering.usb.dhcpserver.startip</td>
      <td>string</td>
      <td><code>192.168.0.10</code></td>
    </tr>
    <tr>
      <td>tethering.usb.dhcpserver.endip</td>
      <td>string</td>
      <td><code>192.168.0.30</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.ip</td>
      <td>string</td>
      <td><code>192.168.1.1</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.prefix</td>
      <td>string</td>
      <td><code>24</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.dhcpserver.startip</td>
      <td>string</td>
      <td><code>192.168.1.10</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.dhcpserver.endip</td>
      <td>string</td>
      <td><code>192.168.1.30</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.ssid</td>
      <td>string</td>
      <td><code>FirefoxHotspot</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.security.type</td>
      <td>string</td>
      <td><code>open</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.security.password</td>
      <td>string</td>
      <td><code>1234567890</code></td>
    </tr>
    <tr>
      <td>tethering.wifi.connectedClients</td>
      <td>number</td>
      <td>0</td>
    </tr>
    <tr>
      <td>tethering.usb.connectedClients</td>
      <td>number</td>
      <td>0</td>
    </tr>
    <tr>
      <td>time.nitz.automatic-update.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>time.timezone</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>ums.enabled</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>ums.mode</td>
      <td>number</td>
      <td>0</td>
    </tr>
    <tr>
      <td>vibration.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>wifi.enabled</td>
      <td>boolean</td>
      <td><code>true</code></td>
    </tr>
    <tr>
      <td>wifi.screen_off_timeout</td>
      <td>number</td>
      <td>600000</td>
    </tr>
    <tr>
      <td>wifi.disabled_by_wakelock</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>wifi.notification</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>wifi.connect_via_settings</td>
      <td>boolean</td>
      <td><code>false</code></td>
    </tr>
    <tr>
      <td>icc.displayTextTimeout</td>
      <td>number</td>
      <td>40000</td>
    </tr>
    <tr>
      <td>icc.inputTextTimeout</td>
      <td>number</td>
      <td>40000</td>
    </tr>
  </tbody>
</table>
<h2 id="Specification">Specification</h2>
<p>Not part of any specification yet; however, this API will be discuss at W3C as part of the <a class="external" href="http://www.w3.org/2012/sysapps/" rel="external" title="http://www.w3.org/2012/sysapps/">System Applications Working Group</a>.</p>
<h2 id="See_also">See also</h2>
<ul>
  <li>{{domxref("window.navigator.mozSettings","naviator.mozSettings")}}</li>
  <li>{{domxref("SettingsManager")}}</li>
  <li>{{domxref("SettingsLock")}}</li>
  <li>{{domxref("MozSettingEvent")}}</li>
</ul>
Revert to this revision