안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
안드로이드 상에서 Audio Player를 만들어 보려고 하는데요.
안드로이드 OS에 포함된 기본 Music Player의 소스를 참고해서
기본 데이타는 같이 쓰려고 합니다.
기본 Music Player는 Media Scanner 를 이용하셔 음악파일의 정보를 DB에 넣어두고 사용하더라구요.
그래서 안드로이드 소스에서 packages 에 있는 Music 소스를 참고하려고
복사해서 보다 보니까
Android 사이트의 Reference 에도 나오지 않는 패키지를 쓰고 있더군요.
import android.media.MediaFile;
import android.media.MediaScanner;
import android.os.FileUtils;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneStateIntentReceiver;
이클립스에서도 이런 패키지가 없다고 에러처리 하던데요.
이런 패키지는 다른 곳에 별도로 존재하는 것인지요?
이클립스상에서는 어떻게 빌드를 해야 하는지요?
안드로이드 도 예전에 Windows 처럼 "Undocumented ... " 뭐 이런 자료가 있는 것인가요?
감사합니다.
안드로이드 상에서 Audio Player를 만들어 보려고 하는데요.
안드로이드 OS에 포함된 기본 Music Player의 소스를 참고해서
기본 데이타는 같이 쓰려고 합니다.
기본 Music Player는 Media Scanner 를 이용하셔 음악파일의 정보를 DB에 넣어두고 사용하더라구요.
그래서 안드로이드 소스에서 packages 에 있는 Music 소스를 참고하려고
복사해서 보다 보니까
Android 사이트의 Reference 에도 나오지 않는 패키지를 쓰고 있더군요.
import android.media.MediaFile;
import android.media.MediaScanner;
import android.os.FileUtils;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneStateIntentReceiver;
이클립스에서도 이런 패키지가 없다고 에러처리 하던데요.
이런 패키지는 다른 곳에 별도로 존재하는 것인지요?
이클립스상에서는 어떻게 빌드를 해야 하는지요?
안드로이드 도 예전에 Windows 처럼 "Undocumented ... " 뭐 이런 자료가 있는 것인가요?
감사합니다.
2009.10.05 16:36:05
정식으로 Android SDK를 통해 공개되지 않은 부분입니다. 애플리케이션 코드 중에 오래전에 작성되어서 안드로이드 API와 호환되지 않는 부분들이 있습니다. 혹은 시스템 어플으로서 사용할수 있게 되어있는 부분도 있을 수 있구요. 애플리케이션 개발자 입장에서는 해당 부분은 안드로이드 버전이 업되면서 호환성이 유지가 되지 않는 부분이므로 모두 제거해서 정리하고 사용하는 것이 바람직합니다.
2009.10.05 17:01:25
http://www.androidpub.com/26015
이 링크가 도움이 될지 모르겠네요
또 호환성을 무시한다면 저 기 위에 몇개는 그냥 따로 구현하셔도 될듯합니다.
이 링크가 도움이 될지 모르겠네요
또 호환성을 무시한다면 저 기 위에 몇개는 그냥 따로 구현하셔도 될듯합니다.
2009.10.05 17:34:50
답변 감사드립니다.
소스코드 중에 보면, Phone의 상태 변화에 따라서 Play 상태를 바꾸는 것이 있더라구요.
if (state == Phone.State.RINGING)
pause 하는 코드가 있음.
else if (state == Phone.State.OFFHOOK)
pause 하는 코드가 있음.
else if (state == Phone.State.IDLE)
resume 하는 코드가 있음.
이런 handler 코드가 있던데요.
여기서 사용하는 것이 import com.android.internal.telephony.PhoneStateIntentReceiver 였습니다.
위 답변 보고 OFFHOOK이 어디에 있는지 확인해 보니까,
android.telephony.TelephonyManager
에 있더라구요.
이 패키지로 대치해서 쓰면 될듯합니다.
다른 패키지도 대응하는 패키지가 있을 지도 모르겠습니다 ^^
감사합니다.
소스코드 중에 보면, Phone의 상태 변화에 따라서 Play 상태를 바꾸는 것이 있더라구요.
if (state == Phone.State.RINGING)
pause 하는 코드가 있음.
else if (state == Phone.State.OFFHOOK)
pause 하는 코드가 있음.
else if (state == Phone.State.IDLE)
resume 하는 코드가 있음.
이런 handler 코드가 있던데요.
여기서 사용하는 것이 import com.android.internal.telephony.PhoneStateIntentReceiver 였습니다.
위 답변 보고 OFFHOOK이 어디에 있는지 확인해 보니까,
android.telephony.TelephonyManager
에 있더라구요.
이 패키지로 대치해서 쓰면 될듯합니다.
다른 패키지도 대응하는 패키지가 있을 지도 모르겠습니다 ^^
감사합니다.
버전 문제인듯한데요.. 확실한건 아닙니다만... ^^;