diff options
author | Cedric Ho <cedricho@google.com> | 2015-05-27 09:51:19 -0700 |
---|---|---|
committer | Cedric Ho <cedricho@google.com> | 2015-05-27 09:51:19 -0700 |
commit | 8fedcdad3691e613ed192f4beea18926056d251d (patch) | |
tree | ba5da0f9645c5423fbc0f326c3bdd4cb119b1d02 | |
parent | 16224288791dd3f122931504e624637fdcc70903 (diff) | |
download | frameworks_base-8fedcdad3691e613ed192f4beea18926056d251d.zip frameworks_base-8fedcdad3691e613ed192f4beea18926056d251d.tar.gz frameworks_base-8fedcdad3691e613ed192f4beea18926056d251d.tar.bz2 |
Add getCallingUid() to RecognitionService.Callback.
Change-Id: I596471625eee24ec93d08650c33461d35ad0aa07
-rw-r--r-- | api/current.txt | 1 | ||||
-rw-r--r-- | api/system-current.txt | 1 | ||||
-rw-r--r-- | core/java/android/speech/RecognitionService.java | 26 |
3 files changed, 22 insertions, 6 deletions
diff --git a/api/current.txt b/api/current.txt index 41acac5..e799685 100644 --- a/api/current.txt +++ b/api/current.txt @@ -29028,6 +29028,7 @@ package android.speech { method public void bufferReceived(byte[]) throws android.os.RemoteException; method public void endOfSpeech() throws android.os.RemoteException; method public void error(int) throws android.os.RemoteException; + method public int getCallingUid(); method public void partialResults(android.os.Bundle) throws android.os.RemoteException; method public void readyForSpeech(android.os.Bundle) throws android.os.RemoteException; method public void results(android.os.Bundle) throws android.os.RemoteException; diff --git a/api/system-current.txt b/api/system-current.txt index 0f6bd2a..bf22e9c 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -31154,6 +31154,7 @@ package android.speech { method public void bufferReceived(byte[]) throws android.os.RemoteException; method public void endOfSpeech() throws android.os.RemoteException; method public void error(int) throws android.os.RemoteException; + method public int getCallingUid(); method public void partialResults(android.os.Bundle) throws android.os.RemoteException; method public void readyForSpeech(android.os.Bundle) throws android.os.RemoteException; method public void results(android.os.Bundle) throws android.os.RemoteException; diff --git a/core/java/android/speech/RecognitionService.java b/core/java/android/speech/RecognitionService.java index dcdbba7..3e74d22 100644 --- a/core/java/android/speech/RecognitionService.java +++ b/core/java/android/speech/RecognitionService.java @@ -21,6 +21,7 @@ import android.annotation.SdkConstant.SdkConstantType; import android.app.Service; import android.content.Intent; import android.content.pm.PackageManager; +import android.os.Binder; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -78,7 +79,7 @@ public abstract class RecognitionService extends Service { switch (msg.what) { case MSG_START_LISTENING: StartListeningArgs args = (StartListeningArgs) msg.obj; - dispatchStartListening(args.mIntent, args.mListener); + dispatchStartListening(args.mIntent, args.mListener, args.mCallingUid); break; case MSG_STOP_LISTENING: dispatchStopListening((IRecognitionListener) msg.obj); @@ -93,7 +94,8 @@ public abstract class RecognitionService extends Service { } }; - private void dispatchStartListening(Intent intent, final IRecognitionListener listener) { + private void dispatchStartListening(Intent intent, final IRecognitionListener listener, + int callingUid) { if (mCurrentCallback == null) { if (DBG) Log.d(TAG, "created new mCurrentCallback, listener = " + listener.asBinder()); try { @@ -107,7 +109,7 @@ public abstract class RecognitionService extends Service { Log.e(TAG, "dead listener on startListening"); return; } - mCurrentCallback = new Callback(listener); + mCurrentCallback = new Callback(listener, callingUid); RecognitionService.this.onStartListening(intent, mCurrentCallback); } else { try { @@ -155,10 +157,12 @@ public abstract class RecognitionService extends Service { public final Intent mIntent; public final IRecognitionListener mListener; + public final int mCallingUid; - public StartListeningArgs(Intent intent, IRecognitionListener listener) { + public StartListeningArgs(Intent intent, IRecognitionListener listener, int callingUid) { this.mIntent = intent; this.mListener = listener; + this.mCallingUid = callingUid; } } @@ -227,9 +231,11 @@ public abstract class RecognitionService extends Service { */ public class Callback { private final IRecognitionListener mListener; + private final int mCallingUid; - private Callback(IRecognitionListener listener) { + private Callback(IRecognitionListener listener, int callingUid) { mListener = listener; + mCallingUid = callingUid; } /** @@ -314,6 +320,14 @@ public abstract class RecognitionService extends Service { public void rmsChanged(float rmsdB) throws RemoteException { mListener.onRmsChanged(rmsdB); } + + /** + * Return the Linux uid assigned to the process that sent you the current transaction that + * is being processed. This is obtained from {@link Binder#getCallingUid()}. + */ + public int getCallingUid() { + return mCallingUid; + } } /** Binder of the recognition service */ @@ -331,7 +345,7 @@ public abstract class RecognitionService extends Service { if (service != null && service.checkPermissions(listener)) { service.mHandler.sendMessage(Message.obtain(service.mHandler, MSG_START_LISTENING, service.new StartListeningArgs( - recognizerIntent, listener))); + recognizerIntent, listener, Binder.getCallingUid()))); } } |