I can't seem to figure out how to create an Android Wear application which would allow me to use it to take notes via built-in voice actions. I declare the intent filter as stated in Adding Voice Capabilities:
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="com.google.android.voicesearch.SELF_NOTE"/>
</intent-filter>
However, that does nothing, and the Wear app on the phone doesn't allow me to set the application as the default note-taking app. What do I need to do to make that happen?
The trick is to include the category android.intent.category.DEFAULT
, as stated in the documentation on intents. If it is missing, no implicit intents can be received by the app. Besides that, it is important to include the MIME type text/plain
. The complete declaration is as follows:
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="com.google.android.voicesearch.SELF_NOTE"/>
<data android:mimeType="text/plain"/>
</intent-filter>
@Malcolm answer with add this line also. It will be working fine.
<action android:name="com.google.android.gm.action.AUTO_SEND" />
The full part is
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="com.google.android.voicesearch.SELF_NOTE"/>
<action android:name="com.google.android.gm.action.AUTO_SEND" />
<data android:mimeType="text/plain"/>