当我在我的移动设备中运行我的应用程序时,我在logcat下得到了这个:
错误打开跟踪文件:没有这样的文件或目录(2)。任何人都知道原因是什么?我试图重新构建项目并在下面清理它:
项目>干净......
但我仍然得到同样的错误。该应用程序说不幸的是你无法在这个设备上录制,如果手机不支持录制,这是我在String.xml文件下创建的消息。
任何有帮助的人都请这样做。我很乐意得到一个。
这是代码: 公共类MainActivity扩展了Activity {
public static final String FILE_DIRECTORY = "iRecorded_Calls";
public ListView listView;
public ScrollView mScrollView;
public TextView mTextView;
public static final String LISTEN_ENABLED = "ListenEnabled";
private static final int CATEGORY_DETAIL = 1;
private static final int NO_MEMORY_CARD = 2;
private static final int TERMS = 3;
public RadioButton radEnable;
public RadioButton radDisable;
public static final int MEDIA_MOUNTED = 0;
public static final int MEDIA_MOUNTED_READ_ONLY = 1;
public static final int NO_MEDIA = 2;
private static Resources res;
private Context context;
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivity(new Intent(this, HomeActivity.class));
res = getResources();
listView = (ListView) findViewById(R.id.mylist);
mScrollView = (ScrollView) findViewById(R.id.ScrollView02);
mTextView = (TextView) findViewById(R.id.txtNoRecords);
SharedPreferences settings = this.getSharedPreferences(LISTEN_ENABLED,
0);
boolean silent = settings.getBoolean("silentMode", false);
if (!silent)
showDialog(CATEGORY_DETAIL);
context = this.getBaseContext();
}
//Explorer the file directory
@SuppressWarnings("deprecation")
@Override
protected void onResume() {
if (updateExternalStorageState() == MEDIA_MOUNTED) {
String filepath = Environment.getExternalStorageDirectory()
.getPath();
final File file = new File(filepath, FILE_DIRECTORY);
if (!file.exists()) {
file.mkdirs();
}
final List<Model> listDir = ListDir2(file);
filepath = getFilesDir().getAbsolutePath();
final File file2 = new File(filepath, FILE_DIRECTORY);
if (!file2.exists()) {
file2.mkdirs();
}
final List<Model> listDir2 = ListDir2(file2);
listDir.addAll(listDir2);
if (listDir.isEmpty()) {
mScrollView.setVisibility(TextView.VISIBLE);
listView.setVisibility(ScrollView.GONE);
} else {
mScrollView.setVisibility(TextView.GONE);
listView.setVisibility(ScrollView.VISIBLE);
}
final CallsAdapter adapter = new CallsAdapter(this, listDir);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
adapter.showPromotionPieceDialog(listDir.get(position)
.getCallName(), position);
}
});
答案 0 :(得分:0)
我设法找出了我的代码上的问题并修复了它,现在我可以记录传入和传出的呼叫。问题出在记录器部分的 RecordSercive 类
下> //________Test with the Default outputFormat and default
> Encoder________
>
> /* recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
> recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
> recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);*/
>
> //_______End for the Test with the Default outputFortmat and default Encoder________
这就是我收到消息的地方很遗憾你不能在这台设备上录制
所以我将代码更改为:
> recorder = new MediaRecorder();
> recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK + MediaRecorder.AudioSource.VOICE_UPLINK);//test using the addition sign
> for both DOWNLINK + UPLINK
> recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
> recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
> myFileName = getFilename();
> recorder.setOutputFile(myFileName);
哪种方式对我来说很好,但声音质量是一个问题,我只需要增加音量
> volume = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
但在我调试我的应用程序时在Eclipse上的LogCat下,我仍然得到错误打开跟踪文件:没有这样的文件或目录(2)。其中我认为这可能是由于我目前正在调查的其他原因(Chris Stratton)提到的。
答案 1 :(得分:-1)
在最新版本的Android中,他们明显限制使用主流网络。 这已经为UI做了不打破。 可能你在清单中提出了API版本。