How can I send text messages and make phone calls on Ubuntu mobile phones?
For some platform security reasons, Ubuntu mobile phones do not currently provide APIs for third-party developers to send text messages and call calls. However, in actual applications, we may need to send short messages or make phone calls. What should we do at this time? In the previous article "examples of using URL dispatcher", we introduced how to use url dispatcher to call third-party applications. Here we use this method to demonstrate how to send short messages and make phone calls in our applications.
First, we will create the simplest "App with Simple UI" template application and modify our "main. qml" file as follows:
import QtQuick 2.0
import Ubuntu.Components 1.1
import Ubuntu.Components.ListItems 0.1 as ListItem
/*!
\brief MainView with a Label and Button elements.
*/
MainView {
// objectName for functional testing purposes (autopilot-qt5)
objectName: "mainView"
// Note! applicationName needs to match the "name" field of the click manifest
applicationName: "com.ubuntu.developer.liu-xiao-guo.phone"
/*
This property enables the application to change orientation
when the device is rotated. The default is false.
*/
//automaticOrientation: true
// Removes the old toolbar and enables new features of the new header.
useDeprecatedToolbar: false
width: units.gu(50)
height: units.gu(75)
Page {
title: i18n.tr("Phone")
function call(phonenumber) {
Qt.openUrlExternally("tel:///" + encodeURIComponent(phonenumber))
}
function sendMessage(phonenumber, text) {
Qt.openUrlExternally("message:///" + encodeURIComponent(phonenumber))
}
Column {
spacing: units.gu(1)
anchors {
margins: units.gu(2)
fill: parent
}
Row {
anchors.horizontalCenter: parent.horizontalCenter
Label {
anchors.verticalCenter: parent.verticalCenter
text: i18n.tr("Number: ")
}
TextField {
id: inputnumber
placeholderText: "please type your phone number"
text: "1111111111"
}
}
Button {
width: parent.width
text: i18n.tr("Call")
onClicked: {
call(inputnumber.text)
}
}
ListItem.Divider {}
Row {
anchors.horizontalCenter: parent.horizontalCenter
Label {
anchors.verticalCenter: parent.verticalCenter
text: i18n.tr("Number: ")
}
TextField {
id: inputnumber1
placeholderText: "please type your phone number"
text: "22222222222"
}
}
TextEdit {
id: messageText
}
Button {
width: parent.width
text: i18n.tr("Send Message")
onClicked: {
sendMessage(inputnumber1.text)
}
}
}
}
}
The design of this application is very simple. Our UI is as follows:
In the above number input box, enter the number you want to Call or Send the text Message, and press the "Call" or "Send Message" button to Call or Send the text Message. However, the text message or phone application is called to complete this action. From the security point of view, user interaction is required. It is very secure for mobile phones. The following code is used to complete url dispatcher:
function call(phonenumber) {
Qt.openUrlExternally("tel:///" + encodeURIComponent(phonenumber))
}
function sendMessage(phonenumber, text) {
Qt.openUrlExternally("message:///" + encodeURIComponent(phonenumber))
}
The complete code of the entire application can be found at the following address:
Bzr branch lp :~ Liu-xiao-guo/debiantrial/phone