Actually you really want a separate volume monitor [1], see the gphoto2 volume monitor (monitor/gphoto2 in the gvfs tree) for details on how to write one; it should be straightforward [3].
This is what I was thinking of. It should still use HAL for device detection for the time being though, right?
So what I'm thinking about doing is adding a new value for volume.fstype in HAL, "afc". When my "gvfsmonitord-afc" or whatever sees a device that supports afc, it'll mount the volume. If the phone is jailbroken, it should mount both the jailed and jailbroken volumes (the convention is for the jailbroken volume to be accessible at com.apple.afc2).
Oh, and it doesn't support multiple iPhones or iPods at the moment, because the underlying libiphone doesn't support them. However, I agree that the URI should be in a form that allows us to support multiple devices in the future. What would really be best is to use the serial number of the device as an identifier (so, say, afc://YM2105825234:com.apple.afc/), I think. This is an important property to expose to applications anyway, because it is needed in the obfuscated signature for the music database.
Patrick
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature