Loading core/java/android/app/KeyguardManager.java +22 −16 Original line number Diff line number Diff line Loading @@ -22,18 +22,19 @@ import android.app.trust.ITrustManager; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.content.pm.ResolveInfo; import android.os.Binder; import android.os.RemoteException; import android.os.IBinder; import android.os.IUserManager; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserManager; import android.view.IWindowManager; import android.view.IOnKeyguardExitResult; import android.view.IWindowManager; import android.view.WindowManagerGlobal; import java.util.List; /** * Class that can be used to lock and unlock the keyboard. Get an instance of this * class by calling {@link android.content.Context#getSystemService(java.lang.String)} Loading Loading @@ -88,12 +89,9 @@ public class KeyguardManager { Intent intent = new Intent(ACTION_CONFIRM_DEVICE_CREDENTIAL); intent.putExtra(EXTRA_TITLE, title); intent.putExtra(EXTRA_DESCRIPTION, description); if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) { intent.setPackage("com.google.android.apps.wearable.settings"); } else { // For security reasons, only allow this to come from system settings. intent.setPackage("com.android.settings"); } // explicitly set the package for security intent.setPackage(getSettingsPackageForIntent(intent)); return intent; } Loading @@ -114,15 +112,23 @@ public class KeyguardManager { intent.putExtra(EXTRA_TITLE, title); intent.putExtra(EXTRA_DESCRIPTION, description); intent.putExtra(Intent.EXTRA_USER_ID, userId); if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) { intent.setPackage("com.google.android.apps.wearable.settings"); } else { // For security reasons, only allow this to come from system settings. intent.setPackage("com.android.settings"); } // explicitly set the package for security intent.setPackage(getSettingsPackageForIntent(intent)); return intent; } private String getSettingsPackageForIntent(Intent intent) { List<ResolveInfo> resolveInfos = mContext.getPackageManager() .queryIntentActivities(intent, PackageManager.MATCH_SYSTEM_ONLY); for (int i = 0; i < resolveInfos.size(); i++) { return resolveInfos.get(i).activityInfo.packageName; } return "com.android.settings"; } /** * @deprecated Use {@link android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD} * and/or {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED} Loading Loading
core/java/android/app/KeyguardManager.java +22 −16 Original line number Diff line number Diff line Loading @@ -22,18 +22,19 @@ import android.app.trust.ITrustManager; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.content.pm.ResolveInfo; import android.os.Binder; import android.os.RemoteException; import android.os.IBinder; import android.os.IUserManager; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserManager; import android.view.IWindowManager; import android.view.IOnKeyguardExitResult; import android.view.IWindowManager; import android.view.WindowManagerGlobal; import java.util.List; /** * Class that can be used to lock and unlock the keyboard. Get an instance of this * class by calling {@link android.content.Context#getSystemService(java.lang.String)} Loading Loading @@ -88,12 +89,9 @@ public class KeyguardManager { Intent intent = new Intent(ACTION_CONFIRM_DEVICE_CREDENTIAL); intent.putExtra(EXTRA_TITLE, title); intent.putExtra(EXTRA_DESCRIPTION, description); if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) { intent.setPackage("com.google.android.apps.wearable.settings"); } else { // For security reasons, only allow this to come from system settings. intent.setPackage("com.android.settings"); } // explicitly set the package for security intent.setPackage(getSettingsPackageForIntent(intent)); return intent; } Loading @@ -114,15 +112,23 @@ public class KeyguardManager { intent.putExtra(EXTRA_TITLE, title); intent.putExtra(EXTRA_DESCRIPTION, description); intent.putExtra(Intent.EXTRA_USER_ID, userId); if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) { intent.setPackage("com.google.android.apps.wearable.settings"); } else { // For security reasons, only allow this to come from system settings. intent.setPackage("com.android.settings"); } // explicitly set the package for security intent.setPackage(getSettingsPackageForIntent(intent)); return intent; } private String getSettingsPackageForIntent(Intent intent) { List<ResolveInfo> resolveInfos = mContext.getPackageManager() .queryIntentActivities(intent, PackageManager.MATCH_SYSTEM_ONLY); for (int i = 0; i < resolveInfos.size(); i++) { return resolveInfos.get(i).activityInfo.packageName; } return "com.android.settings"; } /** * @deprecated Use {@link android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD} * and/or {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED} Loading