Search code examples
firefox-os

Enabling Data Roaming for one application only on my Firefox-OS Phone


I wanted to use Usage default app to determine how much data my own app send when in roaming mode.

I was very surprised to see that my device sent about 500 Mo. Then I realised that other apps on my phone should have used the network also.

So my question is: how can I enable roaming for just my app and prevent network access for everything else (updates, agenda, mail, ...)?

I run Firefox-OS 2.0 on a ZTE-Open device.


Solution

  • No, this is not possible.

    The Data Usage App Icon Data Usage App performs a test like this using the with the Network Stats API:

    var end = new Date();
    var start = new Date();
    
    // Returns a mozNetworkStats object
    var test = navigator.mozNetworkStats.getSamples('mobile', start, end);
    console.log(test);
    

    But this test will return a sample of all device connections, not only yours. The simplest solution is to measure the traffic in your Network Monitor.

    However, if you want to reduce the amount of mobile traffic for your application, you can restrict all connections to specific connection types (like wifi). Just listen to the typechange event of the NetworkInformation.connection API.

    In your WebIDE console (Firefox OS 2.0):

    navigator.connection
    NetworkInformation { type: "wifi", ontypechange: null }
    

    or

    navigator.connection
    NetworkInformation { type: "cellular", ontypechange: null }
    

    Please notice, that Firefox OS <=1.5 will never show you a cellular type of connection (it will return none if not wifi).