Чтобы ваше приложение могло быть выбрано в качестве приложения обмена сообщениями по умолчанию (насколько это касается системы), вы должны перечислить все компоненты манифеста, как показано в этом сообщении в блоге, классы действительно существуют или нет.
<manifest>
...
<application>
<!-- BroadcastReceiver that listens for incoming SMS messages -->
<receiver android:name=".SmsReceiver"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_DELIVER" />
</intent-filter>
</receiver>
<!-- BroadcastReceiver that listens for incoming MMS messages -->
<receiver android:name=".MmsReceiver"
android:permission="android.permission.BROADCAST_WAP_PUSH">
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<!-- Activity that allows the user to send new SMS/MMS messages -->
<activity android:name=".ComposeSmsActivity" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</activity>
<!-- Service that delivers messages from the phone "quick response" -->
<service android:name=".HeadlessSmsSendService"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</service>
</application>
</manifest>
Поскольку система проверяет только манифест приложения, чтобы определить, может ли он действовать как приложение для обмена сообщениями по умолчанию, не все классы классов должны существовать для вашего приложения, чтобы показывать в списке выбора по умолчанию. Это полезно для обучения и тестирования, но, очевидно, если ваше приложение будет действовать как клиент обмена сообщениями по умолчанию пользователя, он должен полностью реализовать все указанные компоненты.
Если вы намереваетесь выполнять любое SMS-сообщение / MMS, вам также понадобятся соответствующие разрешения. Хотя система, по-видимому, не проверяет их при определении подходящих кандидатов приложений по умолчанию, для их соответствующих операций необходимы следующие разрешения:
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
Если вам не хватает SEND_SMS
, READ_SMS
, или WRITE_SMS
, когда вы пытаетесь выполнить данное действие, будет выбрано SecurityException
. Однако, если вам не хватает разрешения RECEIVE_*
, ваше приложение просто не будет доставлено соответствующие трансляции, и может показаться, что при тестировании этих функций ничего не происходит.
Использовать свойство enabled для серийной метки или не использовать модуль series-label.js.
series: [{
label: {
enabled: false
},
data: [1, 2, 3]
}]
Демо-версия Live: http://jsfiddle.net/BlackLabel/jaL5zev4/