unmount fail 的原因是因為沒有 任何一個 external storage 是 MOUTED,
所以 UNMOUNT 都沒作,
所以沒有 UNMOUNT DONE event,
所以 observer 沒有被 call 到.....
ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上
2012年7月27日 星期五
I/AudioService( 2563): AudioFocus abandonAudioFocus(): removing entry for android.media.AudioManager@2acbae28com.android.music.MediaPlaybackService$3@2acf7c78
E/JavaBinder( 2563): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
E/JavaBinder( 2563): java.util.ConcurrentModificationException
E/JavaBinder( 2563): at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:64)
E/JavaBinder( 2563): at android.media.AudioService.removeFocusStackEntry(AudioService.java:2214)
E/JavaBinder( 2563): at android.media.AudioService.requestAudioFocus(AudioService.java:2331)
E/JavaBinder( 2563): at android.media.IAudioService$Stub.onTransact(IAudioService.java:296)
E/JavaBinder( 2563): at android.os.Binder.execTransact(Binder.java:320)
E/JavaBinder( 2563): at com.android.server.SystemServer.init1(Native Method)
E/JavaBinder( 2563): at com.android.server.SystemServer.main(SystemServer.java:730)
E/JavaBinder( 2563): at java.lang.reflect.Method.invokeNative(Native Method)
E/JavaBinder( 2563): at java.lang.reflect.Method.invoke(Method.java:507)
E/JavaBinder( 2563): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/JavaBinder( 2563): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/JavaBinder( 2563): at dalvik.system.NativeStart.main(Native Method)
I/AudioService( 2563): Remote Control registerMediaButtonEventReceiver() for ComponentInfo{com.android.music/com.android.music.MediaButtonIntentReceiver}
2012年7月25日 星期三
Muscic 的暫停與繼續..
Music 的 MediaPlaybackService.java :
用
可以看到,Music 在background 繼續播放,在收到 AudioManger 的通之後,才會停止:
但是其他的 event: AUDIOFOCUS_GAIN, AUDIOFOCUSE_LOSS_TRANSIENT 都沒收到。
從 code 來看, 這兩個 message 應該是在有電話進來的時候會有,先收到 LOSS_TRANSIENT。
等電話掛斷後,收到 AUDIOFOCUS_GAIN。
另外,BroadcastReceiver( ) 也有針對 play, pause, next, prev 的 cmd 操作,可以把 debugLog 修改一下:
這個 command 是給 Music app 自己用的 - 因為宣告成 class private variable.
上面的messasge 出來的是:
在 framework 裡找到用這個command(Intent) 的 code:
frameworks/base/core/java/android/widget/VideoView.java:
用
logcat -s MediaPlaybackService
來看..可以看到,Music 在background 繼續播放,在收到 AudioManger 的通之後,才會停止:
case FOCUSCHANGE:
// This code is here so we can better synchronize it with the code that
// handles fade-in
// AudioFocus is a new feature: focus updates are made verbose on purpose
switch (msg.arg1) {
case AudioManager.AUDIOFOCUS_LOSS:
Log.v(LOGTAG, "AudioFocus: received AUDIOFOCUS_LOSS");
if(isPlaying()) {
mPausedByTransientLossOfFocus = false;
}
pause();
break;
但是其他的 event: AUDIOFOCUS_GAIN, AUDIOFOCUSE_LOSS_TRANSIENT 都沒收到。
從 code 來看, 這兩個 message 應該是在有電話進來的時候會有,先收到 LOSS_TRANSIENT。
等電話掛斷後,收到 AUDIOFOCUS_GAIN。
另外,BroadcastReceiver( ) 也有針對 play, pause, next, prev 的 cmd 操作,可以把 debugLog 修改一下:
Log.v(LOGTAG,"mIntentReceiver.onReceive " + action + " / " + cmd);
這個 command 是給 Music app 自己用的 - 因為宣告成 class private variable.
上面的messasge 出來的是:
V/MediaPlaybackService( 2610): mIntentReceiver.onReceive com.android.music.musicservicecommand / pause
V/MediaPlaybackService( 2610): pause
V/MediaPlaybackService( 2610): mIntentReceiver.onReceive com.android.music.musicservicecommand / pause
V/MediaPlaybackService( 2610): pause
V/MediaPlaybackService( 2610): onStartCommand
在 framework 裡找到用這個command(Intent) 的 code:
frameworks/base/core/java/android/widget/VideoView.java:
private void openVideo() {
if (mUri == null || mSurfaceHolder == null) {
// not ready for playback just yet, will try again later
return;
}
// Tell the music playback service to pause
// TODO: these constants need to be published somewhere in the framework.
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
mContext.sendBroadcast(i);
Official UNIX tool for Windows
MS 官方的 unix tool: http://www.microsoft.com/en-us/download/details.aspx?id=2391
還有 nfs server for windows system 喔。
還有 nfs server for windows system 喔。
2012年7月20日 星期五
BandLuxe C331
log after eject /dev/sr1 (CDROM)
[ 1980.712292] usb 2-1.1.4.2: USB disconnect, address 9
[ 1991.773362] usb 2-1.1.4.2: new high speed USB device using ehci_hcd and address 10
[ 1991.883062] usb 2-1.1.4.2: New USB device found, idVendor=1a8d, idProduct=2006
[ 1991.883068] usb 2-1.1.4.2: New USB device strings: Mfr=3, Product=2, SerialNumber=4
[ 1991.883072] usb 2-1.1.4.2: Product: BandLuxe 3.5G HSPA Adapter
[ 1991.883075] usb 2-1.1.4.2: Manufacturer: BandRich
[ 1991.883078] usb 2-1.1.4.2: SerialNumber: EE45B741112F4E2CB3F00AF0444EE4D1F1B8C491
[ 1991.883233] usb 2-1.1.4.2: configuration #1 chosen from 1 choice
[ 1991.884062] cdc_acm 2-1.1.4.2:1.1: ttyACM0: USB ACM device
[ 1991.884909] cdc_acm 2-1.1.4.2:1.3: ttyACM1: USB ACM device
[ 1991.886971] eth1: register 'cdc_ether' at usb-0000:00:1d.0-1.1.4.2, CDC Ethernet Device, 00:26:fa:ee:45:b7
[ 1991.887235] scsi11 : SCSI emulation for USB Mass Storage devices
[ 1991.887369] usb-storage: device found at 10
[ 1991.887373] usb-storage: waiting for device to settle before scanning
[ 1996.883439] usb-storage: device scan complete
[ 1996.883961] scsi 11:0:0:0: CD-ROM BandRich CDROM 0001 PQ: 0 ANSI: 0
[ 1996.884421] scsi 11:0:0:1: Direct-Access BandRich CDROM 0001 PQ: 0 ANSI: 0
Browser : Clear Search History -- Part I
找一下 "的網頁指出" ..
結果在:
base/core/res/res/values-zh-rTW/strings.xml:
使用者是:
猜是 confirm dialog:
所以是在處理 javascript 的 alert。
其中有 mWebChromeClient 不是 null 時,才會處理。
在 browser/Tab.java 中,有使用 setWebChromeClient..
所以... setWebViewClient( ) 和 setWebChromeClient( ) 的不同處是...?
ref: http://stackoverflow.com/questions/2835556/whats-the-difference-between-setwebviewclient-vs-setwebchromeclient
setWebChromeClient( ) 會處理 JS Alert。
拿 http://www.mkyong.com/tutorials/android-tutorial/ 的 WebView Example code 來測試這個 javascript alert 頁面。
試著拿掉 setWebChromeClient( ) 這行,執行時,就不會出現 dialog
結果在:
base/core/res/res/values-zh-rTW/strings.xml:
使用者是:
base/core/java/android/webkit/CallbackProxy.java
猜是 confirm dialog:
所以是在處理 javascript 的 alert。
其中有 mWebChromeClient 不是 null 時,才會處理。
在 browser/Tab.java 中,有使用 setWebChromeClient..
所以... setWebViewClient( ) 和 setWebChromeClient( ) 的不同處是...?
ref: http://stackoverflow.com/questions/2835556/whats-the-difference-between-setwebviewclient-vs-setwebchromeclient
setWebChromeClient( ) 會處理 JS Alert。
拿 http://www.mkyong.com/tutorials/android-tutorial/ 的 WebView Example code 來測試這個 javascript alert 頁面。
試著拿掉 setWebChromeClient( ) 這行,執行時,就不會出現 dialog
標籤
- 3g (19)
- 工作的備worklog (93)
- 自言自語 (36)
- 草稿 (1)
- 亂亂寫 (8)
- 翻譯 (3)
- administration (76)
- alsa (7)
- android (299)
- apple (5)
- application (42)
- archlinux (1)
- audio (3)
- avr (6)
- backup_restore (2)
- bluetooth (5)
- bookmark (38)
- bootloader (21)
- browser (5)
- cellphone (28)
- command (8)
- Configuration (27)
- debug (7)
- django (1)
- driver (15)
- earphone (1)
- editor (1)
- EFL (1)
- ffmpeg (18)
- Filesystem (4)
- GCC (8)
- Gentoo (1)
- google (1)
- Graphic (3)
- hardware (40)
- hero (7)
- hibernation (9)
- iMX51 (38)
- Info (3)
- Install (30)
- java (4)
- Kernel (102)
- language (2)
- life (2)
- make (11)
- MantainLog (38)
- MCU_P (9)
- memo (8)
- microcontroller (3)
- MINGW (7)
- network (19)
- OpenCL (1)
- OS (11)
- package (3)
- pad (1)
- ProblemAndSolve (15)
- programming (8)
- Python (7)
- raspberry_pi (23)
- SDL (2)
- sensation (13)
- setup (3)
- software_package (36)
- SQL (1)
- suspend (2)
- ToDo (5)
- tool (3)
- ubuntu (1)
- VersionControl (45)
- Virtualization (15)
- VLC (5)
- wheezy (1)
- wifi (3)
- Windows (16)
- xiaomi (1)
- xperia (1)