24
24
logger = logging.getLogger(__name__)
26
SIM_MANAGER = 'org.ofono.SimManager'
27
29
def _get_sim_manager(sim_number):
28
30
bus = dbus.SystemBus()
29
31
modem = bus.get_object('org.ofono', '/ril_{}'.format(sim_number))
30
return dbus.Interface(modem, 'org.ofono.SimManager')
32
return dbus.Interface(modem, SIM_MANAGER)
33
35
def is_pin_locked(sim_number):
48
50
sim_manager.LockPin('pin', pin)
51
def _check_modem(ignore_phonesim, properties, ril_modem, modem_number):
53
def _check_modem(ril_modem, properties, modem_number=None,
54
ignore_phonesim=True):
52
55
"""Decide if the specified modem should be checked.
54
57
Returns True if this modem should be checked, False if not.
75
78
return check_status
78
def is_sim_inserted(sim_number=None, ignore_phonesim=False):
81
def _get_all_modems(bus):
83
Get the DBus interfaces representing each modem
86
:returns: A list of modems
88
manager = dbus.Interface(
89
bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
90
return manager.GetModems()
93
def _sim_present(bus, ril_modem, properties,
94
sim_number=None, ignore_phonesim=True):
95
if _check_modem(ril_modem, properties, modem_number=sim_number,
96
ignore_phonesim=ignore_phonesim):
97
modem = bus.get_object('org.ofono', ril_modem)
98
sim_manager = dbus.Interface(modem, SIM_MANAGER)
100
if sim_manager.GetProperties()['Present']:
102
except dbus.exceptions.DBusException as e:
103
logger.warning('exception: {0}detected on modem: {1}'.format(
108
def is_sim_inserted(sim_number=None, ignore_phonesim=True):
79
109
"""Check a SIM is inserted.
81
111
Checks if a SIM card is inserted in the specified
90
120
any slot, otherwise False
92
122
bus = dbus.SystemBus()
93
manager = dbus.Interface(
94
bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
95
modems = manager.GetModems()
96
for ril_modem, properties in modems:
98
ignore_phonesim, properties, ril_modem, sim_number):
99
modem = bus.get_object('org.ofono', ril_modem)
100
sim_manager = dbus.Interface(modem, 'org.ofono.SimManager')
102
if sim_manager.GetProperties()['Present']:
104
except dbus.exceptions.DBusException as e:
105
logger.warning('exception: {0}detected on modem: {1}'.format(
123
for ril_modem, properties in _get_all_modems(bus):
124
if _sim_present(bus, ril_modem, properties,
125
sim_number, ignore_phonesim):
130
def number_of_sims(ignore_phonesim=True):
132
Provide the number of SIMs inserted in the device.
134
:returns: The number of SIMs found
137
bus = dbus.SystemBus()
138
for ril_modem, properties in _get_all_modems(bus):
139
if _sim_present(bus, ril_modem, properties,
140
ignore_phonesim=ignore_phonesim):
142
return number_of_sims