2010-07-01 42 views
10

Tôi có một ứng dụng sử dụng công cụ tts trong Android, bây giờ khi hoạt động bắt đầu, tôi muốn hiển thị cho người dùng các cài đặt có trong điện thoại cho động cơ tts, trong đó họ có thể thay đổi độ cao, kiểm tra động cơ, v.v. đã có mặt trong trình mô phỏng.Cách hiển thị cài đặt cho văn bản thành lời nói trong ứng dụng của tôi?

Vì vậy, làm cách nào để trình bày cho họ màn hình này?

Trả lời

9

Tôi gặp vấn đề tương tự đối với ứng dụng của mình và tìm thấy bài đăng này. Tôi đã tự mình làm điều đó nên câu trả lời này cũng dành cho những ai có thể cần nó.

ComponentName componentToLaunch = new ComponentName(
     "com.android.settings", 
     "com.android.settings.TextToSpeechSettings"); 
Intent intent = new Intent(); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
intent.setComponent(componentToLaunch); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

Chúng tôi tạo ý định rõ ràng và chúng tôi phải khởi chạy thành phần com.android.settings.TextToSpeechSettings. Bạn có thể sử dụng LogCat trong nhật thực để tìm bất kỳ gói hoặc thành phần nào bạn đang cố gắng khởi chạy. Chỉ cần nhìn vào thông điệp Bắt đầu hoạt động của ActivityManager và bạn sẽ thấy tên gói và thành phần của bất kỳ Hoạt động nào.

CẬP NHẬT

Tính đến Android ICS bạn nên sử dụng các giải pháp mà các Force đăng tải dưới đây.

intent = new Intent(); 
intent.setAction("com.android.settings.TTS_SETTINGS"); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
this.startActivity(intent); 
+1

Có vẻ như phiên bản này không hoạt động nữa (ít nhất là trên Samsung note 2 (API 18)). Câu trả lời từ Force hoạt động. '' ' intent = new Intent(); intent.setAction ("com.android.settings.TTS_SETTINGS"); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); this.startActivity (intent); '' ' – Jani

+0

Cảm ơn @Jani. Tôi đã cập nhật câu trả lời của mình để chỉ ra giải pháp của Force. – Bandreid

2

Tạo Ý định để mở cài đặt. Tôi nghĩ là vậy.

Intent i = new Intent(android.provider.Settings.ACTION_INPUT_METHOD_SETTINGS); 
startActivityForResult(i); // to come back to your activity. 
+0

cảm ơn, nhưng điều này sẽ cung cấp cho các thiết lập bàn phím người dùng. Tôi muốn hiển thị màn hình này trong Cài đặt-> Văn bản thành lời nói. Đây là ảnh chụp màn hình: http://picasaweb.google.com/113593639172348814875/ScreenShots#5489006879503683298 – pranay

16

Đối với người dùng ICS Cuộc gọi của Bandreid sẽ không hoạt động nữa. Bạn phải sử dụng mã này:

intent = new Intent(); 
intent.setAction("com.android.settings.TTS_SETTINGS"); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
this.startActivity(intent); 
3

Tôi đã sáp nhập câu trả lời Bandreid củaquân để hỗ trợ tất cả các phiên bản Android.

Sử dụng mã này:

//Open Android Text-To-Speech Settings 
if (Build.VERSION.SDK_INT >= 14){ 
    Intent intent = new Intent(); 
    intent.setAction("com.android.settings.TTS_SETTINGS"); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
}else { 
    Intent intent = new Intent(); 
    intent.addCategory(Intent.CATEGORY_LAUNCHER); 
    intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.TextToSpeechSettings")); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
} 

Hoặc trong một dòng:

//Open Android Text-To-Speech Settings 
startActivity(Build.VERSION.SDK_INT >= 14 ? 
     new Intent().setAction("com.android.settings.TTS_SETTINGS").setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) : 
     new Intent().addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.settings", "com.android.settings.TextToSpeechSettings")).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); 

Hy vọng câu trả lời giúp tôi!

Các vấn đề liên quan