有沒有人知道通過programmaticaly檢查Android設備,手機或平板電腦是否具有語音功能的好方法? 通過語音功能我的意思是打電話的能力。我知道有些設備,比如北美的Galaxy標籤,沒有這個功能。如何檢查Android設備是否具有語音功能
4
A
回答
0
從理論上講,您應該可以使用Intent.resolveActivity
來做到這一點。有一個問題(描述here)特別是Galaxy選項卡。他們顯然報告說他們有呼叫能力。你甚至可以成功解決一個意圖。不幸的是,它解決了一個沒有操作的活動。
3
我還沒有嘗試過這個自己,但它看起來像你需要將在TelephonyManager細節:
private boolean hasPhoneAbility()
{
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if(telephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE)
return false;
return true;
}
0
我假設編制(),如果沒有麥克風可用會失敗:
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(audio_file);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
mRecorder.start();
} catch (Exception e) {}
1
我知道這個問題被張貼在很久以前,但我仍然認爲我會後我想出瞭解決方案的工作對我來說,到目前爲止,只是這樣的人同樣的問題都能受益。 (因爲很多人似乎很難找到解決方案)。
我剛剛檢查了設備的語音信箱號碼,顯然如果它沒有一個,那麼它不是一個電話。在我的代碼,來檢查這一點,它是tm.getVoiceMailNumber();
這裏就是我所做的:
callButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String ableToMakePhoneCalls = tm.getVoiceMailNumber(); //check device for voicemail number (null means no voicemail number).
if(ableToMakePhoneCalls == null){ //If the device does not have voicemail, then it must not be a phone. So it can't call.
//I displayed an alert dialog box here
}
else{
String phoneNum = "tel:8885554444";
Intent intentPhone = new Intent(android.content.Intent.ACTION_CALL);
intentPhone.setData(Uri.parse(phoneNum));
startActivity(intentPhone);
}
}
});
相關問題
- 1. 如何查找Android設備是否具有音頻功能?
- 2. 如何檢查設備是否具有給定的功能?
- 3. iOS 11 CoreNFC如何檢查設備是否具有NFC功能?
- 4. 如何檢查設備是否具有GSM或GPS功能?
- 5. 如何檢查設備是否具有WiFi Direct功能
- 6. 如何檢查Android設備是否具有硬件加速功能?
- 7. 檢查Android設備是否有可用的視頻功能?
- 8. 如何檢查錄音是否在Android設備中可用。
- 9. 如何測試IOS設備是否具有電話功能?
- 10. Android - 檢查設備是否具有原生Facebook應用程序
- 11. 如何檢查android設備是否爲Rooted設備?
- 12. 如何檢查Android設備是否能夠觸覺反饋?
- 13. 如何檢測iOS設備是否下載了語音文件?
- 14. 如何檢查用戶是否具有WordPress的'manage_options'功能?
- 15. 如何檢查您的Android設備上是否有seek API?
- 16. 如何檢查Android設備GPS模塊是否有AGPS支持
- 17. 如何檢查我的android設備是否有連接?
- 18. 如何檢查當前的Android設備是否具有Google的位置服務?
- 19. 如何檢查Android設備是否具有自定義字體集
- 20. 是否有可能檢查設備是否越獄?
- 21. 檢查設備是否運行Android 4.3
- 22. 檢查設備是否有硬件音量控制?
- 23. 如何檢查MIDI設備是否也是USB設備?
- 24. Android中是否有語音到文本功能?
- 25. 如何以編程方式檢查手機是否具備WiFi功能?
- 26. 是否有Android API功能可以告訴用戶何時查看設備?
- 27. 如何檢查特定語言是由設備支持的android
- 28. 檢查設備是否具有網絡連接
- 29. 繼續檢查設備是否具有互聯網連接
- 30. 如何檢查文件是否在Android設備
我跳的更具體的像TelephonyManager什麼東西可以用來... – FiDo 2011-05-25 20:14:28
所作的關鍵點馬克墨菲在我鏈接到的線索是這樣的:「一些Android 2.x平板電腦,如銀河標籤,可能聲稱有電話,即使他們沒有撥號,爲了有資格進入Android電子市場。 android.os.Build通過製造商和型號來識別這些,我不知道你還能說什麼。「不幸的是,沒有更好的答案。您可以在Galaxy上進行的每項軟件測試都會告訴您它具備電話功能,即使它不是。 – 2011-05-25 21:57:31