在我的应用程序中,有一个功能来记录语音呼叫,它的工作非常好.但是当测试(三星s7,s8)它不能很好地工作.该应用程序只能记录来电者的声音而不是另一端的声音.以下是我的代码检查请建议解决方案
MediaRecd = new MediaRecorder();
MediaRecd.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL
);
MediaRecd.setAudioChannels(ConstantVariables.audioChannels);//monoRecording
MediaRecd.setAudioEncodingBitRate(64);
MediaRecd.setAudioSamplingRate(44100);
MediaRecd.setOutputFormat(output_formats[pos]);//.mp3
MediaRecd.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//I already try with all possible CAMCORDER , MIC , Default etc etc but none was working
MediaRecd.setOutputFile(Currentfilename);
try {
MediaRecd.prepare();
MediaRecd.start();
} catch (Exception e) {
MediaRecd.reset();
MediaRecd.release();
MediaRecd = null;
}
Run Code Online (Sandbox Code Playgroud)
请帮忙
我只想显示所有已安装的应用程序名称列表和缓存大小.缓存大小必须与Android设备中显示的本机设置应用程序相同.
我能够列出所有已安装的应用程序pkg名称,但无法计算本机设置应用程序显示的相同高速缓存大小(我正在谈论设置中清除缓存选项的那个地方).
pkNames = getPackageManager().getInstalledPackages(0);
ArrayAdapter<PackageInfo> adapter = new ArrayAdapter<PackageInfo>(this,
android.R.layout.simple_list_item_1, pkNames);
final PackageManager pm = getPackageManager();
for(int i =0;i<pkNames.size();i++)
{
ApplicationInfo applicationInfo = pm.getApplicationInfo(pkNames.get(i).packageName.toString(), 0);
File file = new File(applicationInfo.publicSourceDir);
long size = file.length();
System.out.println("application name == "+pkNames.get(i).packageName.toString()+" ,and size of cache is == "+size(this, size));
}
Run Code Online (Sandbox Code Playgroud)
我使用这段代码,但它会给我该应用程序的.apk大小.:(请提前帮助谢谢.