99 lines
3.6 KiB
Markdown
99 lines
3.6 KiB
Markdown
|
|
Android MessagingService Sample
|
|
===================================
|
|
|
|
This sample shows a simple service that sends notifications using
|
|
NotificationCompat. It also extends the notification with Remote
|
|
Input to allow Android N devices to reply via text directly from
|
|
the notification without having to open an App. The same Remote
|
|
Input object also allows Android Auto users to respond by voice
|
|
when the notification is presented there.
|
|
Note: Each unread conversation from a user is sent as a distinct
|
|
notification.
|
|
|
|
Introduction
|
|
------------
|
|
|
|
#### Checklist while building a messaging app that supports Android Auto:
|
|
1. Ensure that Message notifications are extended using
|
|
NotificationCompat.Builder.extend(new CarExtender()...)
|
|
2. Declare a meta-data tag to your AndroidManifest.xml to specify that your app
|
|
is automotive enabled.
|
|
|
|
example: AndroidManifest.xml
|
|
|
|
```
|
|
<meta-data android:name="com.google.android.gms.car.application"
|
|
android:resource="@xml/automotive_app_desc"/>
|
|
```
|
|
|
|
Include the following to indicate that the application wants to show notifications on
|
|
the Android Auto overview screen.
|
|
|
|
example: res/xml/automotive\_app\_desc.xml
|
|
```
|
|
<automotiveApp>
|
|
<uses name="notification"/>
|
|
</automotiveApp>
|
|
```
|
|
|
|
#### Flow
|
|
MessagingFragment is shown to the user. Depending on the button clicked, the MessagingService is
|
|
sent a message. MessagingService in turn creates notifications which can be viewed either on the
|
|
device or in the messaging-simulator.
|
|
|
|
When a message is read, the associated PendingIntent is triggered and MessageReadReceiver is called
|
|
with the appropriate conversationId. Similarly, when a reply is received, the MessageReplyReceiver
|
|
is called with the appropriate conversationId. MessageLogger logs each event and shows them in a
|
|
TextView in MessagingFragment for correlation.
|
|
|
|
Pre-requisites
|
|
--------------
|
|
|
|
- Android SDK 24
|
|
- Android Build Tools v27.0.2
|
|
- Android Support Repository
|
|
|
|
Screenshots
|
|
-------------
|
|
|
|
<img src="screenshots/1-main.png" height="400" alt="Screenshot"/> <img src="screenshots/2-onemessage.png" height="400" alt="Screenshot"/> <img src="screenshots/3-threemessages.png" height="400" alt="Screenshot"/>
|
|
|
|
Getting Started
|
|
---------------
|
|
|
|
This sample uses the Gradle build system. To build this project, use the
|
|
"gradlew build" command or use "Import Project" in Android Studio.
|
|
|
|
Support
|
|
-------
|
|
|
|
- Google+ Community: https://plus.google.com/communities/105153134372062985968
|
|
- Stack Overflow: http://stackoverflow.com/questions/tagged/android
|
|
|
|
If you've found an error in this sample, please file an issue:
|
|
https://github.com/googlesamples/android-MessagingService
|
|
|
|
Patches are encouraged, and may be submitted by forking this project and
|
|
submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details.
|
|
|
|
License
|
|
-------
|
|
|
|
Copyright 2017 The Android Open Source Project, Inc.
|
|
|
|
Licensed to the Apache Software Foundation (ASF) under one or more contributor
|
|
license agreements. See the NOTICE file distributed with this work for
|
|
additional information regarding copyright ownership. The ASF licenses this
|
|
file to you under the Apache License, Version 2.0 (the "License"); you may not
|
|
use this file except in compliance with the License. You may obtain a copy of
|
|
the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
License for the specific language governing permissions and limitations under
|
|
the License.
|