1322 Commits

Author SHA1 Message Date
Nick Pelly
f003e26df9 Final final final Gingerbread MR API changes.
This is it. I promise.

ACTION_TECHNOLOGY_DISCOVERED -> ACTION_TECH_DISCOVERED
    This was missed in our technology->tech rename.

Hide TagTechnology.reconnect()
    This is used to reset any per-connection state in a tag, by reconnecting
    to it. The first problem is that it belongs on Tag, not TagTechnology. The
    second problem is that it may become redundant once we add Tag.rediscover()
    which will also reconnect to the tag, and will also return a new Tag with
    newly created technologies enumerated. And the third and most significant
    problem is that you can already achieve the same result by just calling
    close() followed by connect().

Hide Tag.createMockTag()
    This API cannot be used reliably. First it requires using int[] for the
    technology list, but those int constants are now hidden. Second it requires
    knowledge of the extras parcel used to fill technology specific data - also
    not public.

Introduce TagTechnology.isConnected()
    Every child class already impelmented this, and given that connect() and
    close() are defined on the interface, then isConnected() should be there
    too.

Modify Ndef.getType to return a string (not int)
    Allows more flexibility in adding new NDEF types. Current public strings are
    org.nfcforum.ndef.type1
    org.nfcforum.ndef.type2
    org.nfcforum.ndef.type3
    org.nfcforum.ndef.type4
    com.nxp.ndef.mifareclassic

Add NdefFormatable.formatReadOnly()
    This allows you to make the tag read-only at the same time as performing
    format and write. It is important because we currently don't have any
    public API to re-enumerate a tag technology list after making a tag
    NDEF compatible, so you can't perform the format as a seperate step
    without physically removing the tag from field and returning it.

Modify Readonly -> ReadOnly

Make Tag class final

Change-Id: Icf306aeb37b936ca3007e4868e99b6baceac4aff
2011-02-01 09:20:45 -08:00
Jeff Hamilton
113834c5ab Commit the final API for level 10.
Change-Id: I56140f79ff599c1a9d03c0f53d700df402234bf1
2011-01-31 11:46:29 -06:00
Nick Pelly
3fcedf7728 API: Make close() throw an IOException.
IOException on close() can be useful to indicate that in-progress transactions
were canceled.

I also audited all of our tech classes to make sure every function that needs
to throw IOException does so.

Change-Id: Iaa9c43d79d59ff85772d5c3e4b4d57a6fa8df4cf
2011-01-27 16:17:14 -08:00
Nick Pelly
4a5e253220 Clean up MifareUltralight API.
o Some javadoc updates
o writeBlock -> writePages  (Block means something else in NFC Forum).
o validate page offset

Change-Id: Icae54db3397d57aaa451caaa86d56e8ba82507f2
2011-01-27 12:22:56 -08:00
Jeff Hamilton
978afba57c Fix the build, proper current.xml.
Change-Id: I9b02206042c74fd5c329fe2b70ed2b6b91d41382
2011-01-25 18:10:58 -06:00
Jeff Hamilton
d88e9aa575 Use classnames instead of ints for NFC techs.
This makes the system more flexible and allows
adding new technology types without having to
update the API.

Change-Id: Iaee6b633965e501a70e8afc3f1d54d9d94a4d05a
2011-01-25 16:32:26 -06:00
Nick Pelly
1e233af3a7 Add operands to mifare classic increment, decrement.
Change-Id: Ib35f615142bda48a5e33888a09ebae2880624788
2011-01-23 22:11:44 -08:00
Nick Pelly
e45083b11b Make MifareClassic methods more consistent.
Remove method overloading for combinations of sector+block addressing.
Instead provide methods that more closly match the raw commands, and more
efficient helpers to convert between blocks and sectors.

o fix off-by-one bug in getBlockCountInSector()
o add BLOCK_SIZE
o remove DESFIRE not operating in classic emulation (SAK 0x20)
o hide isEmulated(), there is no use case, and the info is available elsewhere
o getTotalBlockCount() -> getBlockCount()
o getBlockCount(int) -> getBlockCountInSector(int)
o introduce blockToSector() and sectorToBlock()
o remove authenticateBlock()
    make it really clear that authentication is per sector, and reduce function
    explosion. blockToSector() allows you to use authenticateSector...
o explicit authenticateSectorWithKeyA() / authenticateSectorWithKeyB()
    get rid of magic boolean
o remove all (int sector, int block) parameters
    always address by absolute block. this makes the API crystal clear, and
    helps reduce function explosion
o validation of all sector and block indices
o dont & 0xff when converting to byte - its redundant
o Remove TYPE_OTHER. Mifare Classic types are well-known and stable.

Change-Id: I3c9f8254ff307f31b388b3d7592c862d5de6afa5
2011-01-23 21:32:57 -08:00
Jeff Hamilton
4e21e1d21a API changes for NFC.
Bug: 3366009
Change-Id: Ia28e03e1501421906b640b78d4c9a59a20e9c668
2011-01-21 13:32:58 -06:00
Dianne Hackborn
11576102a9 Fix issue #3373438: Update GBMR versions
Change-Id: Ic4b4f1b0534fd2fbd6322eae01a4cb9d5a67cc6f
2011-01-20 12:16:43 -08:00
Nick Pelly
0316d4a24f Change signature of MifareClassic.authenticate*() to throw IOException.
Update API for this and the previous commit.

Change-Id: I19275a5d00081bd0f00afea59a2b673344a32954
2011-01-18 18:52:37 -08:00
Martijn Coenen
a701cf85a0 Implement IsoDep timeout handling (API).
Added a method for setting the timeout on IsoDep transactions.

Change-Id: Ie627e7a826556e46295fefe69b9be83ebf911d93
2011-01-18 11:35:46 -08:00
Jeff Hamilton
0716ea144d Merge "Javadoc updates for NFC." into gingerbread 2011-01-18 11:01:55 -08:00
Jeff Hamilton
3a223404e7 Merge "New APIs for NDEF Push Protocol." into gingerbread 2011-01-18 11:01:05 -08:00
Jeff Hamilton
ce3224cda5 Javadoc updates for NFC.
Change-Id: Ibd91829979576297599fbcc9eb8054924af1d527
2011-01-18 10:57:30 -08:00
Kenny Root
524133cc79 Remove API that snuck into MockPackageManager
We didn't release the get/setPackageObbPath API, but it snuck into
MockPackageManager. However, it is not usable as a developer anyway.
Removing it so it doesn't stay in the API forever.

Change-Id: Ia569754691dc3a9f2672c1f25e4e08d780db6028
2011-01-17 12:40:57 -08:00
Kenny Root
34d2b41e48 Revert "Add the {get,set}PackageObbPaths calls to API"
This reverts commit 6c4d904851772313930f800ac7c323cf90c709bb.

Going with a different tactic that doesn't dump stuff on
PackageManagerService.

Bug: 3214719
Change-Id: I0bbeccf3c21d264deda4256eb53713d2c98284f4
2011-01-17 11:49:22 -08:00
Jeff Hamilton
33ff240558 New APIs for NDEF Push Protocol.
The NPP is only usable by the foregorund
activity to prevent dispatching confusion
on the far end.

Change-Id: I08475a52083fd7f81b79b7fe2faf4e126121a809
2011-01-17 08:07:24 -08:00
James Dong
83fdc69ea0 Merge "Squash commits of the following patches, cherry-picked from other branch - do not merge." into gingerbread 2011-01-14 16:27:48 -08:00
Jaikumar Ganesh
a788a94309 Merge "Do Not Merge: Expose insecure rfcomm Bluetooth API." into gingerbread 2011-01-14 16:11:41 -08:00
Jaikumar Ganesh
a3363ef2cd Do Not Merge: Expose insecure rfcomm Bluetooth API.
This complements the secure rfcomm API.
The link key is unauthenticated and is subject to MITM attacks.
The link key may be encrypted depending on the type of Bluetooth device.
This helps apps which don't need the extra security or
have their own security layer built on top of the rfcomm link.

Bug: 3352266

Change-Id: I633fd0372e5e23288d6fec950dd1abc2896031f1
2011-01-14 13:24:03 -08:00
Jeff Hamilton
52d3203ef6 Add dispatching overrides for foreground apps.
Apps can register to override the default dispatching
but only when they're in the foreground.

Change-Id: I8e9a9254d3f79f097fb3c8c677d806043574ba4d
2011-01-13 14:24:07 -06:00
Wei-Ta Chen
61d9ffbfd8 Merge "Do not merge." into gingerbread 2011-01-13 12:02:32 -08:00
James Dong
9efe47374b Squash commits of the following patches, cherry-picked from other branch - do not merge.
o Prepare for publishing MediaMetadataRetriever as public API
  step one:
  o replaced captureFrame with getFrameAtTime
  o removed getMode

o Replace MediaMetadataRetriever.captureFrame() with MediaMetadataRetriever.getFrameAtTime()
  as part of the preparation for publishing MediaMetadataRetriever as public Java API

o Remove captureFrame from MediaMetadataRetriever.java class
  It has been replaced by getFrameAtTime() method

o Replace extractAlbumArt() with getEmbeddedPicture() in MediaMetadataRetriever.java

o Publish MediaMetadataRetriever.java as public API
  o Removed setMode() methods and related mode constants
  o Removed some of the unused the metadata keys
  o Updated the javadoc
  o part of a multi-project change.

bug - 3309041

Change-Id: I2efb6e8b8d52897186b016cb4efda6862f5584c4
2011-01-12 17:12:46 -08:00
Kenny Root
e8c04db71e Merge "Add the {get,set}PackageObbPaths calls to API" into gingerbread 2011-01-12 15:03:43 -08:00
Wei-Ta Chen
25bce3a673 Do not merge.
Backport changes related to BitmapRegionDecoder from HoneyComb to
Gingerbread.

Bug: 3309014

////////////////////////////////////////////////////
This is a combination of 7 commits.
Revert "Do not merge."

This reverts commit f7681f84918c27f6a626681ce37ed2a236c44e82.

Change-Id: I46fd710600b1649773eaea2d9abc2b21a592f9a6

Fix a initialization bug in BitmapRegionDecoder.

Change-Id: I6c1151fd34970a84d4de52d664d9a5dc464892c5

Fix segfault when tring to throw IOException.

Change-Id: I530cc4409ba4ca17cec933afad077c5f60ba554f

Fix 3122139, where previewing an attachment for the second time will
fail.

Use AutoFDSeek to mark and restore the position before we read data from
the descriptor.

Change-Id: I3d4f012dce486e19b113bc90a98b94031cfa8195

Add inPreferQualityOverSpeed into BitmapFactory.Options.

The new field allows a developer to use a more accurate by
slightly slower IDCT method in JPEG decode. This in turns improves the
quality of the reconstructed image.

The field by default is not set and thus does not affect existing
applications.

Bug: 3238925
Change-Id: I93d55b7226e47a43e639325cd1a677694d6f2ee4

Unhide inPreferQualityOverSpeed in BitmapFactory.Options.

The new field allows a developer to use a more accurate by
slightly slower IDCT method in JPEG decode. This in turns improves the
quality of the reconstructed image.

The field by default is not set and thus does not affect existing
applications.

Bug: 3238925

Related changes: https://android-git.corp.google.com/g/#change,83291 and
                 https://android-git.corp.google.com/g/#change,83294

Change-Id: I969f5c413f9b2179454aeb90e18ae8222ee583b4

Correct the API comments.

BitmapRegionDecoder supports PNG as well.
2011-01-11 22:54:10 -08:00
Nick Pelly
ca36d863cc Update API current.xml to unbreak build.
Change-Id: I151ee987fdae73fdf8f339dbb64f8fd27a0436b6
2011-01-10 14:16:16 -08:00
Nick Pelly
b4003bf73e Change Tag.getTechnology(NfcAdapter, int) to NfcAdapter.getTechnology(Tag, int)
The later feels less clumsy.

Change-Id: I50f29aef23d2993dcfd25f4c4f2cb0d77bdc0610
2011-01-10 17:28:03 +11:00
Kenny Root
6c4d904851 Add the {get,set}PackageObbPaths calls to API
Add getPackageObbPaths() and setPackageObbPaths() to the public API.

Bug: 3214719
Change-Id: Icb9f2f92f8c59bb3d31317f609854e81abbd1449
2011-01-09 13:20:28 -08:00
Jeff Hamilton
be372d6462 Make the new NFC APIs public.
Change-Id: Ia0acd9759d67683eaf1dc199dc2cc55e16a98e77
2011-01-06 13:18:34 -06:00
James Dong
d609ca7f6a Expose AMRNB/WB and AAC encoder and related file output formats - do not merge
bug - 3305667

Change-Id: I8f137af7f87cb010f75cae1777b9ec6b6af8214f
2010-12-22 12:12:12 -08:00
Mike LeBeau
52af3a4f9a Unhide RecognizerResultsIntent. This API was
reviewed for Froyo, but we didn't want to make it
public then because it wasn't until our first
Market release of Voice Search that the APIs would
be in use by our app.

http://b/3135351

Change-Id: I49053717cac08e3976c22e3a105139b6755aadb8
2010-12-20 10:50:31 -05:00
Dianne Hackborn
b2caa06c2e Work on issue #3255640: Need to bump GB to API 10 version name "2.4"
New API definition for API level 10.

Change-Id: I1d78374ca5a17d568dc6f6b1ae8fb456f4d4aa88
2010-12-14 11:29:01 -08:00
Nick Pelly
50b4d8f643 Make getSystemService(NFC_SERVICE) the NFC entry point.
This gives NFC service a handle to the application context.

Deprecate NfcAdapter.getDefaultAdapter(), it does not provide a context.
Using this method will print a warning, and will later throw an exception
if a method that requires a context is called. No 2.3 API's will fail, but
new API's that do require a context might fail.

Also add helper NfcAdapter.getDefaultAdapter(Context).

Change-Id: I9a6378de4ef4b61ad922f8d53e64e2a1a1d5d60c
2010-12-10 17:12:33 -08:00
Dianne Hackborn
05434e9fa7 Final API 9. Really! Honestly! I hope.
Change-Id: I2ee5844587b5745556d621e4b9ef0efa3ec5edcf
2010-11-16 15:40:56 -08:00
Jesse Wilson
28c742573c Add @Deprecated to match @deprecated where it's missing.
Change-Id: Ice95022671968386a601f32df7850f9baa1d2dd0
2010-11-09 10:10:11 -08:00
Wu-cheng Li
a48b70fa8f Camera.open() should only return back-facing camera.
Also update current.xml and 9.xml. setRotationHint was also
missing from 9.xml.
bug:3173302

Change-Id: Idd3f7417a4d35c65910e9b08a1bfd157b91e1baa
2010-11-09 02:20:02 +08:00
Wu-cheng Li
17ae359721 Revert "android.hardware.Camera.open only returns back-facing camera."
This reverts commit 07b88fefd4e6386ad3265da47d008b40e6a58891.
2010-11-09 01:34:05 +08:00
Wu-cheng Li
07b88fefd4 android.hardware.Camera.open only returns back-facing camera.
bug:3173302
Change-Id: I813e41b36c776246f151b66ef289cdf13a05dc2c
2010-11-08 12:38:48 +08:00
James Dong
ad8f19c6b3 Add a new public API to support recording rotated videos
o changed a comment about the rotation orientation from counter-clockwise
  to clockwise.

Change-Id: I16ad73ce1a55cc627d9a516e23d1325753b3037e
2010-11-05 15:53:00 -07:00
Dan Bornstein
bc19c7bdc0 Update the API file.
My previous change was api-compatible, but some of the incidental data
in the API file (like parameter names) changed. It looks like there
were probably a couple other similar changes too, that hadn't
previously been propagated to the API file; all I did to generate this
change was say "make update-api".

Change-Id: I427a9ceb51212fde515df007613b8687b7228ce7
2010-11-01 14:14:37 -07:00
Dianne Hackborn
70a2c15ecf Final SDK API 9. DO NOT MERGE.
Change-Id: I3e2fc2ebc52eecb26ac3a6bb466447f378fb5de6
2010-10-29 18:50:47 -07:00
Nick Pelly
11b075e218 Hide some NFC API's.
We are leaving enough API so that you can see when any Tag is discovered,
get its ID, and get its NDEF messages.

But for advanced use - creating tag connections and writing messages - we have
2 problems. Firstly a lot of the code is untested
(RawTagConnection.transceive()), or in some cases known not to work
(NdefTagConnection.write()). Secondly, there is still debate about how to
best expose information about Tags.

The set of data/methods exposed for a Tag changes completely depending on the
tag technology. There may be multiple sets of technology implemented in a
single tag. Tag A may have technology X and Y, Tag B may have technology Y
and Z. Furthermore, some NFC controllers will be not be able to use all
technologies, and so Android Device 1 may see technology X and Y on Tag A but
Android device 2 may only see technology X. So we have a pretty challenging
set of constraints to work under, and we are not convinced the current Tag and
NdefTag class is the best approach going forwards.

The Tag application should be able to remain unbundled, since it just needs to
get incoming NDEF Messages.

Change-Id: Ic09f094f33794e10f8d730fffe011c9a5957e0ac
Signed-off-by: Nick Pelly <npelly@google.com>
2010-10-28 14:54:52 -07:00
Dianne Hackborn
e21d91c694 Fix issue #3126018: No way to specify NativeActivity's native method
Change-Id: I59de6a543e7f7f45d963a905829a3f56f32bf8cf
2010-10-24 14:56:38 -07:00
Nick Pelly
07f3bee2db Push Tag/NdefTag implementation details into the service.
Tag/NdefTag objects should just be simple data objects. Push the mapping of
internal tag type to public rawTarget/ndefTarget into Nfc Service.

This gives an oppurtunity to clean up some Tag/NdefTag API methods. Most
significantly, adding createMockTag() and createMockNdefTag() to help with
application testing.

There will probably be some more tweaking of the types/targets in
Tag/NdefTag to come, this commit makes that a lot easier.

Also:
- Introduce getActivationBytes() and getPollBytes(). These are just stubs
for NFC service to implement, we have feedback these are really important
to help identify NFC tags.
- Based on outside advice, remove 3B_PRIME (roll into 3B) and TOPAZ (roll
into 3A).

Change-Id: I3e6789c047f6ee5c298bf76c65e0885cf3c15d97
Signed-off-by: Nick Pelly <npelly@google.com>
2010-10-22 16:29:43 -07:00
Dianne Hackborn
5383f502e4 Fix issue #3122240: Expose xlarge in GB.
Plus some other small API cleanup.

Change-Id: I1a3c60f510f99224cccac9cc3f838f04141064f8
2010-10-22 12:59:20 -07:00
Jeff Hamilton
da83f513ca Unhide some NFC APIs that are required for the Tag app.
Change-Id: Ic64e00476132dbf4644de5c465e06fe11a264508
2010-10-21 23:43:22 -05:00
Jeff Hamilton
389a440ad1 Backport ParcelFileDescriptor.createPipe() from master.
This allows content providers to expose arbitraty data
through the ContentResolver open* APIs.

Change-Id: I408a0b7cee9cdba5654a962098386c012d6b3549
2010-10-21 22:39:41 -05:00
Dianne Hackborn
a6d9c7c04c Implement issue #3116702: New manifest tags for supported screen sizes DO NOT MERGE
Change-Id: Iabf64d86c89d387ffbfbc39f950d308a73fe17eb
2010-10-21 15:32:06 -07:00
Nick Pelly
7ea5c45e8d NFC settings cleanup.
Remove NFC settings from Settings.System. The NFC Service tracks them
internally using SharedPreference.

Revert back to enable()/disable()/isEnabled() - Tag discovery is the
only functionality NFC service performs right now so we don't need to
break it up more explicitly yet. enable/disable is the global NFC
on/off and later we'll add enableDiscovery(), enableTagEmulation(),
enableSecureElement() etc as needed.

Change-Id: Id5b23e89d4a29511835f509962842452075e56cb
Signed-off-by: Nick Pelly <npelly@google.com>
2010-10-21 03:54:51 -07:00