我正在寫應用程序來記錄通話並上傳所有文件是記錄。如何從一個類中的變量獲取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'都會給你相同的結果。謝謝 –