Причина в том, что приложение для голосового поиска из Google отсутствует на устройстве, которое вы используете. Вы можете решить проблему, вручную установив ее на свое устройство. Но есть и другой способ сделать это. Это открывает ссылку приложения в веб-виде, например, следующее
try {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo");
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
} catch(ActivityNotFoundException e) {
Intent your_browser_intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://market.android.com/details?id=APP_PACKAGE_NAME"));
startActivity(your_browser_intent);
}
. Вы также можете сделать это, используя кодировку и не используя веб-просмотр, но это большая работа, и вам нужно написать целую кучу кода. Итак, я думаю, что использование веб-просмотра в целом очень хорошо.
Связанные подчиненные отчеты (по крайней мере, в КСИ CR) совместно используют источник данных основного отчета - по-видимому, Ваш отчет уже настроен так, это не опция для Вас?
Вот то, как я установил свои соединения во времени выполнения. Я получаю информацию о соединении от местоположения конфигурации.
#'SET REPORT CONNECTION INFO
For i = 0 To rsource.ReportDocument.DataSourceConnections.Count - 1
rsource.ReportDocument.DataSourceConnections(i).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
Next
For i = 0 To rsource.ReportDocument.Subreports.Count - 1
For x = 0 To rsource.ReportDocument.Subreports(i).DataSourceConnections.Count - 1
rsource.ReportDocument.OpenSubreport(rsource.ReportDocument.Subreports(i).Name).DataSourceConnections(x).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
Next
Next
Если Вы просто делаете это как одноразовое соглашение, мое предложение не могло бы помочь. Но при изменении источников данных часто это могло бы быть полезно.
Отказ от ответственности: Я не работал с Crystal начиная с версии 9.0, таким образом, я не знаю, изменили ли они к лучшему это. Я всегда использовал файлы UDL. В основном это - указатель на источник данных. Настройте свой отчет указать на UDL, и UDL указывает на источник данных. Если источник изменяется, просто обновите UDL.
Это невероятно полезно, если у Вас есть несколько отчетов. Только необходимо обновить один файл, когда сервер изменяется.
@Unsliced я думаю проблема, которую он достигает, - при взятии кристаллического отчета, кто-то разработал против другой базы данных, и Вы поднимаете его в КСИ Crystal Reports, необходимо сделать Источник данных Изменения для каждого поля, включая @Unsliced в подчиненных отчетах. Если Вы просто изменяете источник на верхнем уровне отчета, это часто ошибки. (Я думаю, что это - известная проблема в Crystal Reports).
Я предполагаю, что Вы говорите о .rdl файлах от Reporting Services? (В противном случае мой ответ мог бы быть неправильным),
Они - в основном просто XML, таким образом, Вы могли загрузить каждый из них в и сделать запрос XPath для получения узла, который содержит источник данных, и обновите его.