App Integration

There are many ways for apps to integrate with other apps. Sometimes, the
“other apps” are special ones, like the home screen or Web browsers. Sometimes,
the “other apps” can be fairly arbitrary. Usually, our integration is
“loosely coupled”, where our apps do not know much, if anything, about the other
apps that we integrate with. But it is this sort of integration that powers
the overall Android ecosystem, allowing apps to work with other apps and provide
a (relatively) seamless experience for the user.

During this one-day seminar, we will explore the following:

App Widgets

What is an app widget?

How do I add an app widget to my app?

Why am I limited to this RemoteViews thing?

How do I update my app widget, based on changing data from a server or something?

How do I offer configuration of my app widget?

How can I have an app widget that shows a collection of stuff?

Shortcuts

How do I add a shortcut to the home screen? Or, at least, how did this used to work?

How do I offer static shortcuts to home screens?

How do I offer dynamic shortcuts to home screens, on Android 7.1+ devices?

Tasks

What is a task, exactly?

How do we launch activities into a new task, and why would we want to?

How do we control what task our activities are launched into?

Why is this so confusing?

Clipboard

What can we put on the clipboard?

How do we put information on the clipboard?

How do we get information off the clipboard?

How do we find out when the clipboard contents change, and is this a good thing?

URLs and Links

How do we set up an activity to respond to a custom scheme, and will this work?

How do we set up an activity to respond to an http or https URL, and will this work?

How can we convince Android to skip the “chooser” and drive straight to our activity?

ACTION_SEND and Direct Share

How do those “Share” things work?

Sometimes those “Share” things have this action bar thingy that has a drop-down of possible apps to share with — how does that work?

What can we share? Text? Streams? Both?

How do we have an activity respond to ACTION_SEND?

Can we offer more fine-grained ways for users to share content with my app?

Screenshots and Screencasts

How can I take a screenshot of whatever is on the screen… as a developer?

How can I take a screenshot of whatever is on the screen… from my app?