A method comprising: receiving, by a mobile device, an application program, the application program being associated with an identifier of a signal source group that includes a plurality of signal sources, the signal source group defining a multi-level proximity fence comprising a high-level proximity fence and a low-level proximity fence, the low-level proximity fence being enclosed in the high-level proximity fence, wherein the application program is configured to activate upon the mobile device entering the multi-level proximity fence; detecting, by the mobile device, a signal source identifier from a signal source, the detected signal source identifier comprising a first-level identifier and a second-level identifier; upon determining that the first-level identifier in the detected signal source identifier matches the identifier of the signal source group, activating, by the mobile device, a first function of the application program; and upon determining that the second-level identifier matches at least a portion of an identifier of an individual signal source in the signal source group: determining that a distance between the mobile device and the individual signal source satisfies a proximity threshold; and upon determining that the distance between the mobile device and the individual signal source satisfies the proximity threshold, switching, by the mobile device, the first function of the application program into a second function of the application program, the second function being different from the first function. receiving, by a mobile device, an application program, the application program being associated with an identifier of a signal source group that includes a plurality of signal sources, the signal source group defining a multi-level proximity fence comprising a high-level proximity fence and a low-level proximity fence, the low-level proximity fence being enclosed in the high-level proximity fence, wherein the application program is configured to activate upon the mobile device entering the multi-level proximity fence; detecting, by the mobile device, a signal source identifier from a signal source, the detected signal source identifier comprising a first-level identifier and a second-level identifier; upon determining that the first-level identifier in the detected signal source identifier matches the identifier of the signal source group, activating, by the mobile device, a first function of the application program; and upon determining that the second-level identifier matches at least a portion of an identifier of an individual signal source in the signal source group: determining that a distance between the mobile device and the individual signal source satisfies a proximity threshold; and upon determining that the distance between the mobile device and the individual signal source satisfies the proximity threshold, switching, by the mobile device, the first function of the application program into a second function of the application program, the second function being different from the first function. determining that a distance between the mobile device and the individual signal source satisfies a proximity threshold; and upon determining that the distance between the mobile device and the individual signal source satisfies the proximity threshold, switching, by the mobile device, the first function of the application program into a second function of the application program, the second function being different from the first function.