• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.internal.app;
18 
19 import android.media.permission.Identity;
20 import com.android.internal.app.ISoundTriggerSession;
21 
22 /**
23  * Service interface for a generic sound recognition model.
24  *
25  * This interface serves as an entry point to establish a session, associated with a client
26  * identity, which exposes the actual functionality.
27  *
28  * @hide
29  */
30 interface ISoundTriggerService {
31     /**
32      * Creates a new session.
33      *
34      * This version is intended to be used when the caller itself is the originator of the
35      * operations, for authorization purposes.
36      *
37      * The pid/uid fields are ignored and will be replaced by those provided by binder.
38      *
39      * It is good practice to clear the binder calling identity prior to calling this, in case the
40      * caller is ever in the same process as the callee.
41      *
42      * The binder object being passed is used by the server to keep track of client death, in order
43      * to clean-up whenever that happens.
44      */
attachAsOriginator(in Identity originatorIdentity, IBinder client)45     ISoundTriggerSession attachAsOriginator(in Identity originatorIdentity,
46                                             IBinder client);
47 
48     /**
49      * Creates a new session.
50      *
51      * This version is intended to be used when the caller is acting on behalf of a separate entity
52      * (the originator) and the sessions operations are to be accounted against that originator for
53      * authorization purposes.
54      *
55      * The caller must hold the SOUNDTRIGGER_DELEGATE_IDENTITY permission in order to be trusted to
56      * provide a reliable originator identity. It should follow the best practices for reliably and
57      * securely verifying the identity of the originator.
58      *
59      * It is good practice to clear the binder calling identity prior to calling this, in case the
60      * caller is ever in the same process as the callee.
61      *
62      * The binder object being passed is used by the server to keep track of client death, in order
63      * to clean-up whenever that happens.
64      */
attachAsMiddleman(in Identity middlemanIdentity, in Identity originatorIdentity, IBinder client)65     ISoundTriggerSession attachAsMiddleman(in Identity middlemanIdentity,
66                                            in Identity originatorIdentity,
67                                            IBinder client);
68 }
69