am 63226dd8: Merge "Allow apps with SCORE_NETWORKS to set the active scorer." into lmp-mr1-dev automerge: 24f535b
* commit '63226dd8f3570bd3b28e4241668843385ba99c2d': Allow apps with SCORE_NETWORKS to set the active scorer.
This commit is contained in:
@@ -192,12 +192,15 @@ public class NetworkScoreManager {
|
|||||||
/**
|
/**
|
||||||
* Set the active scorer to a new package and clear existing scores.
|
* Set the active scorer to a new package and clear existing scores.
|
||||||
*
|
*
|
||||||
|
* <p>Should never be called directly without obtaining user consent. This can be done by using
|
||||||
|
* the {@link #ACTION_CHANGE_ACTIVE} broadcast, or using a custom configuration activity.
|
||||||
|
*
|
||||||
* @return true if the operation succeeded, or false if the new package is not a valid scorer.
|
* @return true if the operation succeeded, or false if the new package is not a valid scorer.
|
||||||
* @throws SecurityException if the caller does not hold the
|
* @throws SecurityException if the caller does not hold the
|
||||||
* {@link android.Manifest.permission#BROADCAST_NETWORK_PRIVILEGED} permission
|
* {@link android.Manifest.permission#SCORE_NETWORKS} permission.
|
||||||
* indicating that it can manage scorer applications.
|
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@SystemApi
|
||||||
public boolean setActiveScorer(String packageName) throws SecurityException {
|
public boolean setActiveScorer(String packageName) throws SecurityException {
|
||||||
try {
|
try {
|
||||||
return mService.setActiveScorer(packageName);
|
return mService.setActiveScorer(packageName);
|
||||||
|
|||||||
@@ -130,7 +130,16 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setActiveScorer(String packageName) {
|
public boolean setActiveScorer(String packageName) {
|
||||||
mContext.enforceCallingOrSelfPermission(permission.BROADCAST_NETWORK_PRIVILEGED, TAG);
|
// TODO: For now, since SCORE_NETWORKS requires an app to be privileged, we allow such apps
|
||||||
|
// to directly set the scorer app rather than having to use the consent dialog. The
|
||||||
|
// assumption is that anyone bundling a scorer app with the system is trusted by the OEM to
|
||||||
|
// do the right thing and not enable this feature without explaining it to the user.
|
||||||
|
// In the future, should this API be opened to 3p apps, we will need to lock this down and
|
||||||
|
// figure out another way to streamline the UX.
|
||||||
|
|
||||||
|
// mContext.enforceCallingOrSelfPermission(permission.BROADCAST_NETWORK_PRIVILEGED, TAG);
|
||||||
|
mContext.enforceCallingOrSelfPermission(permission.SCORE_NETWORKS, TAG);
|
||||||
|
|
||||||
return setScorerInternal(packageName);
|
return setScorerInternal(packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user