有没有人知道通过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. 如何检查设备是否具有WiFi Direct功能
- 4. iOS 11 CoreNFC如何检查设备是否具有NFC功能?
- 5. 如何检查录音是否在Android设备中可用。
- 6. 如何测试IOS设备是否具有电话功能?
- 7. 如何检测iOS设备是否下载了语音文件?
- 8. 如何检查列表是否具有连续的功能
- 9. 如何检查用户是否具有WordPress的'manage_options'功能?
- 10. 如何检查我的android设备是否有连接?
- 11. 如何检查当前的Android设备是否具有Google的位置服务?
- 12. 如何检查Android设备是否具有自定义字体集
- 13. 是否有可能检查设备是否越狱?
- 14. 如何以编程方式检查手机是否具备WiFi功能?
- 15. 是否有Android API功能可以告诉用户何时查看设备?
- 16. 如何检查特定语言是由设备支持的android
- 17. 继续检查设备是否具有互联网连接
- 18. 如何检查SIM卡是否可用于Android设备?
- 19. 如何检查配对设备是否在线 - Android程序
- 20. 如何检查Android设备是否连接到网络?
- 21. 如何检查中文android设备是否与Google API兼容?
- 22. Android:如何检查设备上的闪光灯是否可用?
- 23. 如何检查Android设备是否可以访问互联网?
- 24. 如何检查文件是否具有备用数据流?
- 25. 检查大写功能是否有效
- 26. 如何确定Android设备是否具有GPU代码?
- 27. 检查设备是否具有连接到inernet不起作用的Android代码
- 28. 如何检测用户是否具有ActiveX过滤功能?
- 29. 检查Android设备是否有搜索硬件按钮
- 30. 如何检测Android设备是否有QWERTY键盘
我跳的更具体的像TelephonyManager什么东西可以用来... – FiDo 2011-05-25 20:14:28
所作的关键点马克墨菲在我链接到的线索是这样的:“一些Android 2.x平板电脑,如银河标签,可能声称有电话,即使他们没有拨号,为了有资格进入Android电子市场。 android.os.Build通过制造商和型号来识别这些,我不知道你还能说什么。“不幸的是,没有更好的答案。您可以在Galaxy上进行的每项软件测试都会告诉您它具备电话功能,即使它不是。 – 2011-05-25 21:57:31