diff options
Diffstat (limited to 'src/com/android/nfc/NfcDispatcher.java')
-rw-r--r-- | src/com/android/nfc/NfcDispatcher.java | 37 |
1 files changed, 8 insertions, 29 deletions
diff --git a/src/com/android/nfc/NfcDispatcher.java b/src/com/android/nfc/NfcDispatcher.java index 1721d1a..f628dea 100644 --- a/src/com/android/nfc/NfcDispatcher.java +++ b/src/com/android/nfc/NfcDispatcher.java @@ -20,7 +20,6 @@ import com.android.nfc.RegisteredComponentCache.ComponentInfo; import com.android.nfc.handover.HandoverManager; import android.app.Activity; -import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.IActivityManager; import android.app.PendingIntent; @@ -31,7 +30,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.net.Uri; import android.nfc.NdefMessage; @@ -40,7 +38,6 @@ import android.nfc.NfcAdapter; import android.nfc.Tag; import android.nfc.tech.Ndef; import android.os.RemoteException; -import android.os.UserHandle; import android.util.Log; import java.io.FileDescriptor; @@ -61,6 +58,7 @@ public class NfcDispatcher { final Context mContext; final IActivityManager mIActivityManager; final RegisteredComponentCache mTechListFilters; + final PackageManager mPackageManager; final ContentResolver mContentResolver; final HandoverManager mHandoverManager; @@ -74,6 +72,7 @@ public class NfcDispatcher { mIActivityManager = ActivityManagerNative.getDefault(); mTechListFilters = new RegisteredComponentCache(mContext, NfcAdapter.ACTION_TECH_DISCOVERED, NfcAdapter.ACTION_TECH_DISCOVERED); + mPackageManager = context.getPackageManager(); mContentResolver = context.getContentResolver(); mHandoverManager = handoverManager; } @@ -158,21 +157,19 @@ public class NfcDispatcher { // is not available on Context. Instead, we query the PackageManager beforehand // to determine if there is an Activity to handle this intent, and base the // result of off that. - List<ResolveInfo> activities = packageManager.queryIntentActivitiesAsUser(intent, 0, - ActivityManager.getCurrentUser()); + List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0); if (activities.size() > 0) { - context.startActivityAsUser(rootIntent, UserHandle.CURRENT); + context.startActivity(rootIntent); return true; } return false; } boolean tryStartActivity(Intent intentToStart) { - List<ResolveInfo> activities = packageManager.queryIntentActivitiesAsUser( - intentToStart, 0, ActivityManager.getCurrentUser()); + List<ResolveInfo> activities = packageManager.queryIntentActivities(intentToStart, 0); if (activities.size() > 0) { rootIntent.putExtra(NfcRootActivity.EXTRA_LAUNCH_INTENT, intentToStart); - context.startActivityAsUser(rootIntent, UserHandle.CURRENT); + context.startActivity(rootIntent); return true; } return false; @@ -326,16 +323,7 @@ public class NfcDispatcher { // Try to perform regular launch of the first AAR if (aarPackages.size() > 0) { String firstPackage = aarPackages.get(0); - PackageManager pm; - try { - UserHandle currentUser = new UserHandle(ActivityManager.getCurrentUser()); - pm = mContext.createPackageContextAsUser("android", 0, - currentUser).getPackageManager(); - } catch (NameNotFoundException e) { - Log.e(TAG, "Could not create user package context"); - return false; - } - Intent appLaunchIntent = pm.getLaunchIntentForPackage(firstPackage); + Intent appLaunchIntent = mPackageManager.getLaunchIntentForPackage(firstPackage); if (appLaunchIntent != null && dispatch.tryStartActivity(appLaunchIntent)) { if (DBG) Log.i(TAG, "matched AAR to application launch"); return true; @@ -379,20 +367,11 @@ public class NfcDispatcher { ArrayList<ResolveInfo> matches = new ArrayList<ResolveInfo>(); List<ComponentInfo> registered = mTechListFilters.getComponents(); - PackageManager pm; - try { - UserHandle currentUser = new UserHandle(ActivityManager.getCurrentUser()); - pm = mContext.createPackageContextAsUser("android", 0, - currentUser).getPackageManager(); - } catch (NameNotFoundException e) { - Log.e(TAG, "Could not create user package context"); - return false; - } // Check each registered activity to see if it matches for (ComponentInfo info : registered) { // Don't allow wild card matching if (filterMatch(tagTechs, info.techs) && - isComponentEnabled(pm, info.resolveInfo)) { + isComponentEnabled(mPackageManager, info.resolveInfo)) { // Add the activity as a match if it's not already in the list if (!matches.contains(info.resolveInfo)) { matches.add(info.resolveInfo); |