我正在写应用程序来记录通话并上传所有文件是记录。如何从一个类中的变量获取Android中的另一个类?
我有问题,当获取路径文件名并将其上传到我的服务器。
我想当1个文件被记录成功,然后它会上传。
我有2类: 类AudioRecorder
来记录呼叫。
public class AudioRecorder {
static String fileName;
MediaRecorder mediaRecorder;
public void start() {
File directory = new File(fileName).getParentFile();
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile(fileName);
mediaRecorder.prepare();
mediaRecorder.start();
}
public String courseGet(String startDate) {
return Environment.getExternalStorageDirectory().getAbsolutePath() + "/GhiAmCuocGoi/"
+ startDate + configPreferenceManager.getPathFormat();
}
}
此类fileName
变量包含PATH到文件记录。
而且这个类别得到Event
时incoming and outcoming call
。 当呼叫状态结束时,它将会UploadFile
。
如何获取类Audiorecorder
的变量fileName
的值到fileToUploadPath
类的波纹管变量。
在这个类是:
TelephonyManager telManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
telManager.listen(new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (state != pState) {
if (state == TelephonyManager.CALL_STATE_OFFHOOK && callInfoPreferenceManager.getCallState()) {
Toast.makeText(
context,
callInfoPreferenceManager.getName() + " "
+ callInfoPreferenceManager.getPhoneNumber()
+ "\n" + "Start recording!!!", Toast.LENGTH_SHORT).show();
} else if (state == TelephonyManager.CALL_STATE_IDLE && callInfoPreferenceManager.getCallState() == CALLING) {
Toast.makeText(context, "Record success.", Toast.LENGTH_SHORT).show();
// I WILL UPLOAD AT HERE. AFTER RECORD SUCCESS
MultipartUploadRequest req = new MultipartUploadRequest(this, serverUrlString)
.addFileToUpload(fileToUploadPath, paramNameString);
}
}
}, PhoneStateListener.LISTEN_CALL_STATE);
我使用'AudioRecorder audioRecorder =新AudioRecorder();'但 'audioRecorder.fileName'不在这一类里找到。 – Luna
其“静态”成员,因此不需要任何“对象”来访问该特定的变量'fileName'。所以只要尝试一次我已经推荐给你的东西。 “静态”成员变量作为单个实体在所有对象之间共享。所以,@Luna或者使用'audioRecorder.fileName'或者'AudioRecorder.fileName'都会给你相同的结果。谢谢 –