@Kaarel सही ढंग से उत्तर, लेकिन एक छोटे से अधिक जानकारी की आपूर्ति करने:
एक गतिविधि प्रकट में निम्नलिखित रजिस्टर करने की जरूरत है:
<intent-filter >
<action android:name="android.speech.action.VOICE_SEARCH_HANDS_FREE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Google खोज को इस आशय के लिए पंजीकृत किया गया है, लेकिन यह होगा केवल यह करने के लिए प्रतिक्रिया जब स्क्रीन पर और नहीं बंद कर दिया है: नीचे से AudioService
private void startVoiceBasedInteractions(boolean needWakeLock) {
Intent voiceIntent = null;
// select which type of search to launch:
// - screen on and device unlocked: action is ACTION_WEB_SEARCH
// - device locked or screen off: action is ACTION_VOICE_SEARCH_HANDS_FREE
// with EXTRA_SECURE set to true if the device is securely locked
PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
boolean isLocked = mKeyguardManager != null && mKeyguardManager.isKeyguardLocked();
if (!isLocked && pm.isScreenOn()) {
voiceIntent = new Intent(android.speech.RecognizerIntent.ACTION_WEB_SEARCH);
} else {
voiceIntent = new Intent(RecognizerIntent.ACTION_VOICE_SEARCH_HANDS_FREE);
voiceIntent.putExtra(RecognizerIntent.EXTRA_SECURE,
isLocked && mKeyguardManager.isKeyguardSecure());
}
// start the search activity
if (needWakeLock) {
mMediaEventWakeLock.acquire();
}
try {
if (voiceIntent != null) {
voiceIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
mContext.startActivity(voiceIntent);
}
} catch (ActivityNotFoundException e) {
Log.w(TAG, "No activity for search: " + e);
} finally {
if (needWakeLock) {
mMediaEventWakeLock.release();
}
}
यह सुविधा ले लिया देखें वर्तमान में बहुत बेमानी है due to this linked bug, जहां सिस्टम अनुप्रयोग प्राथमिकता को ओवरराइड कर रहे हैं, इस प्रकार उपयोगकर्ता को एक स्थापित विकल्प चुनने से रोकते हैं।
जब आपने ऐसा एप्लिकेशन बनाया है और उपयोगकर्ता इसका उपयोग नहीं कर सकते हैं, वास्तव में बहुत परेशान है ............. वास्तव में।
@ राय 220: यहां RECORD_CODE क्या है? – Shiv