OpenAjax Device APIs Modules

From MemberWiki

Jump to: navigation, search

The following table shows potential modularization strategy for device APIs.

  • The first two columns represent copy/paste information from our requirements page [1]
  • The 3rd column attempts to provide an executive summary of the key interfaces in J2ME/MSA
  • The 4th column attempts to provide an executive summary of the key interfaces in MobileScript
  • The 5th columns provides a high-level strawman for how to modularize the given API within our initiative
Section from our requirements documentAssociated actions and eventsWhat J2ME/MSA hasWhat MobileScript hasProposal for OpenAjax
Call
  1. Setup call
  2. Accept call
  3. Release call
  4. Divert call
  5. Send DTMF
  6. video
    1. send
    2. receive
    3. pause
  7. Call logs - placed/received/missed/all
    1. list
    2. remove
    3. get details
  8. Events
    1. call waiting
    2. missed call
    3. mail received
      1. voice
      2. video
No relevant JSRs Phone.IncomingCallRegistry, Phone.OutgoingCallRegistry, phone.inCall.CallList, phone.outCall.CallList, IncomingCall (Event), MissedIncomingCall (Event), CallListEvent

APIs: OpenAjax.device.phone.* (e.g., .inbox, .outbox)
Events: org.openajax.device.phone.*

PIM:Messaging
  1. send
    1. text
    2. media
  2. list
    1. inbox/outbox/sent
    2. other folders - trash, personalized
    3. details
      1. text
      2. media
  3. remove
  4. markAsRead
  5. status
  6. incoming message

jsr205
javax.wireless.messaging (for both SMS and MMS)

phone.InBox.IncomingSMS, phone.InBox.IncomingMMS, phone.InBox.SMSList, phone.inBox.SMSList, phone.outBox.SMSList, IncomingSMSEvent, phone.inBox.MMSList, phone.outBox.MMSList, IncomingMMSEvent

APIs: OpenAjax.device.sms.* (e.g., .inbox, .outbox), OpenAjax.device.mms.* (simlar)
Events: org.openajax.device.sms.*, org.openajax.device.mms.*

PIM:EMail
  1. create new
  2. send
    1. with media
  3. list
    1. inbox/outbox/sent
    2. other folders - trash, personalized
    3. get details
  4. get
    1. headers
    2. body
    3. attachments/parts
  5. delete
  6. move
  7. markAsRead
  8. status
  9. incoming message
  10. sync with server
No relevant JSRs phone.InBox.IncomingEmail, phone.inBox.EmailLIst, Phone.InBox.EmailList, phone.outBox.EmailList, IncomingEmailEvent

APIs: OpenAjax.device.email.* (e.g., .inbox, .outbox)
Events: org.openajax.device.email.*

PIM:Address book
  1. subscribe
  2. unsubscribe
  3. create
  4. search
  5. get details
    1. contact info
    2. photo
  6. remove
  7. change
  8. favorite
javax.microedition.pim.Contact phone.addressBook.ContactList

APIs: OpenAjax.device.contacts.*
Events: org.openajax.device.contacts.*

PIM:Agenda/Calendar
  1. subscribe
  2. unsubscribe
  3. search
    1. get details
  4. remove
  5. change
  6. add
  7. reminder
  8. timer
  9. dismiss
  10. snooze
    1. set
    2. clear
    3. remaining
    4. alarm
javax.microedition.pim.Event phone.calendar.AppointmentList

APIs: OpenAjax.device.calendar.*
Events: org.openajax.device.calendar.*

PIM:Notes
  1. list
  2. create list
  3. get details
  4. create
  5. update
  6. delete
? ?

APIs: OpenAjax.device.notes.*
Events: org.openajax.device.notes.*

PIM:Tasks
  1. list
  2. create list
  3. get details
  4. create
  5. update
  6. delete
  7. reminder event
javax.microedition.pim.ToDo ?

APIs: OpenAjax.device.tasks.*
Events: org.openajax.device.tasks.*

Indicators:Power
  1. power source
  2. charge level
  3. critical battery
  4. charging
  5. charging interrupted
  6. charge completed
  7. power source changed
No relevant JSRs Phone.IsCharging, Phone.IsLowBattery, ChargingCompletedEvent, ChargingInterruptedEvent, ChargingStartedEvent, LowBatteryEvent

APIs: OpenAjax.device.power.*
Events: org.openajax.device.power.*

Indicators: Network
  1. signal strength
  2. network type - Cellular/Wi-Fi
    1. Cellular
    2. Wi-Fi
    3. Bluetooth
  3. out of coverage
  4. signal available
  5. roaming
  6. in home
No relevant JSRs Phone.IsUnderCoverage, Phone.IsRoaming, InRoamingEvent, InHomeEvent, CoverageEvent, OutOfCoverageEvent

APIs: OpenAjax.device.network.[cellular|wifi|bluetooth].*
Events: org.openajax.device.network.[cellular|wifi|bluetooth].*

Indicators: Location
  1. get current location
  2. location changed
  3. signal lost
  4. orientation
    1. started
    2. interrupted
    3. completed
Need to research JSR 179 Phone.CurrentLocation, NewLocationEvent

APIs: OpenAjax.device.geo.*
Events: org.openajax.device.geo.*

Indicators: Time
  1. now
    1. date
    2. time
    3. change
    4. time zone
  2. time zone change
No relevant JSRs Phone.AlarmManager, Phone.SystemDateTime

APIs: OpenAjax.device.clock.*
Events: org.openajax.device.clock.*

Data feeds
  1. subscribe
    1. authorization headers
    2. links followed
    3. subscription interval
  2. subscription
    1. unsubscribe
    2. list
      1. memory used
      2. status
    3. pause
    4. resume
  3. error
  4. clear error
  5. subscription completed
No relevant JSRs ? ?
Files & media: Media resources
  1. render
    1. image
    2. audio
    3. video
  2. get metadata
    1. image
    2. audio
    3. video
  3. play list
    1. play
    2. get details
    3. add to
    4. create
    5. remove
  4. remove
  5. capture
    1. image
    2. audio
    3. video
    4. 2d bar code
  6. annotate
    1. image
    2. audio
    3. video
No relevant JSRs (although there is JSR 75 for general file i/o) phone.resoures.ImageList, phone.resources.SoundList, phone.resources.VideoList

APIs: OpenAjax.device.resources.[images|sounds|videos].*
Events: org.openajax.device.resources.[images|sounds|videos].*

Files & media: File I/O
  1. create
  2. read
  3. write
  4. append
  5. remove
  6. disk space (total, available)

JSR 75:
javax.microedition.io.Connection
javax.microedition.io.InputConnection
javax.microedition.io.file.FileConnection
javax.microedition.io.OutputConnection
javax.microedition.io.StreamConnection
javax.microedition.io.file.FileSystemListener
class javax.microedition.io.file.FileSystemRegistry

?

APIs: OpenAjax.device.fileio.*
Events: org.openajax.device.fileio.*

Camera
  1. zoom
  2. resolution
  3. brightness
  4. timer
No relevant JSRs ?

APIs: OpenAjax.device.camera.*
Events: org.openajax.device.camera.*

Effectors
  1. vibrate
  2. backlight
  3. mode
    1. set
    2. get
No relevant JSRs Phone.Mode, Phone.SetMode

APIs: OpenAjax.device.mode.*
Events: org.openajax.device.mode.*

Miscellaneous
  1. Accelerometer (i.e., portrait/landscape tilt event and ability to query)
  2. Out of memory event, memory query (total memory, available memory)
  3. console manager
No relevant JSRs OutOfMemoryEvent

APIs: OpenAjax.device.[accelerometer|memory|console].*
Events: org.openajax.device.[accelerometer|memory|console].*

Network: Bluetooth
  1. start
  2. stop
  3. list devices
    1. device info
    2. connected state
    3. connect
    4. disconnect
    5. send
    6. receive
Need to research JSR 82 ?

See Indicators:Network above

Network: Wi-Fi
  1. start
  2. stop
  3. list networks
    1. network info
    2. connect
    3. disconnect
No relevant JSRs ?

See Indicators:Network above

Personal tools