[Hal] Add request/release control event in aidl interface.

Test: compile
Bug: 344753047
Change-Id: I1e5628a3105f8ee804ed0f40d386fda872b4442b
This commit is contained in:
ziyiw
2024-07-02 18:06:25 +00:00
committed by Roshan Pius
parent f1cbd9b6c1
commit 8b75b778e7
7 changed files with 35 additions and 2 deletions

View File

@@ -372,6 +372,7 @@
</hal>
<hal format="aidl" updatable-via-apex="true">
<name>android.hardware.nfc</name>
<version>1-2</version>
<interface>
<name>INfc</name>
<instance>default</instance>

View File

@@ -44,4 +44,5 @@ interface INfc {
int write(in byte[] data);
void setEnableVerboseLogging(in boolean enable);
boolean isVerboseLoggingEnabled();
android.hardware.nfc.NfcStatus controlGranted();
}

View File

@@ -40,4 +40,6 @@ enum NfcEvent {
PRE_DISCOVER_CPLT = 3,
HCI_NETWORK_RESET = 4,
ERROR = 5,
REQUEST_CONTROL = 6,
RELEASE_CONTROL = 7,
}

View File

@@ -140,4 +140,13 @@ interface INfc {
* @return true if verbose logging flag value is enabled, false if disabled.
*/
boolean isVerboseLoggingEnabled();
/**
* Requests control of NFCC to libnfc-nci.
* If an API request is sent when the framework has no control of NFCC, the request will be
* queued until the control is released from HAL.
* The control will be taken out of the framework for at most 2 seconds.
* @return NfcStatus::OK on success and NfcStatus::FAILED on error.
*/
NfcStatus controlGranted();
}

View File

@@ -50,4 +50,14 @@ enum NfcEvent {
* Error event to notify upper layer when there's an unknown error.
*/
ERROR = 5,
/**
* Request control event to notify upper layer when HAL
* request control of NFCC to libnfc-nci
*/
REQUEST_CONTROL = 6,
/**
* Release control event to notify upper layer when HAL
* release control of NFCC to libnfc-nci.
*/
RELEASE_CONTROL = 7,
}

View File

@@ -38,7 +38,7 @@ cc_test {
"libbinder_ndk",
],
static_libs: [
"android.hardware.nfc-V1-ndk",
"android.hardware.nfc-V2-ndk",
],
test_suites: [
"general-tests",
@@ -71,7 +71,7 @@ cc_test {
"libstatssocket",
],
static_libs: [
"android.hardware.nfc-V1-ndk",
"android.hardware.nfc-V2-ndk",
"android.hardware.nfc@1.0",
"android.hardware.nfc@1.1",
"android.hardware.nfc@1.2",

View File

@@ -440,6 +440,16 @@ TEST_P(NfcAidl, CheckisVerboseLoggingEnabledAfterSetEnableVerboseLogging) {
EXPECT_TRUE(!enabled);
}
TEST_P(NfcAidl, CheckControlGrantedStatus) {
int interface_version;
EXPECT_TRUE(infc_->getInterfaceVersion(&interface_version).isOk());
if (interface_version > 1) {
NfcStatus status;
EXPECT_TRUE(infc_->controlGranted(&status).isOk());
EXPECT_EQ(status, NfcStatus::OK);
}
}
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(NfcAidl);
INSTANTIATE_TEST_SUITE_P(Nfc, NfcAidl,
testing::ValuesIn(::android::getAidlHalInstanceNames(INfc::descriptor)),