Search in sources :

Example 76 with IntentFilter

use of android.content.IntentFilter in project platform_frameworks_base by android.

the class InputManagerService method systemRunning.

// TODO(BT) Pass in paramter for bluetooth system
public void systemRunning() {
    if (DEBUG) {
        Slog.d(TAG, "System ready.");
    }
    mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
    mSystemReady = true;
    IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
    filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
    filter.addDataScheme("package");
    mContext.registerReceiver(new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            updateKeyboardLayouts();
        }
    }, filter, null, mHandler);
    filter = new IntentFilter(BluetoothDevice.ACTION_ALIAS_CHANGED);
    mContext.registerReceiver(new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            reloadDeviceAliases();
        }
    }, filter, null, mHandler);
    mHandler.sendEmptyMessage(MSG_RELOAD_DEVICE_ALIASES);
    mHandler.sendEmptyMessage(MSG_UPDATE_KEYBOARD_LAYOUTS);
    if (mWiredAccessoryCallbacks != null) {
        mWiredAccessoryCallbacks.systemReady();
    }
}
Also used : Context(android.content.Context) IntentFilter(android.content.IntentFilter) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) BroadcastReceiver(android.content.BroadcastReceiver)

Example 77 with IntentFilter

use of android.content.IntentFilter in project platform_frameworks_base by android.

the class PackageManagerService method queryIntentActivitiesInternal.

@NonNull
private List<ResolveInfo> queryIntentActivitiesInternal(Intent intent, String resolvedType, int flags, int userId) {
    if (!sUserManager.exists(userId))
        return Collections.emptyList();
    flags = updateFlagsForResolve(flags, userId, intent);
    enforceCrossUserPermission(Binder.getCallingUid(), userId, false, /* requireFullPermission */
    false, /* checkShell */
    "query intent activities");
    ComponentName comp = intent.getComponent();
    if (comp == null) {
        if (intent.getSelector() != null) {
            intent = intent.getSelector();
            comp = intent.getComponent();
        }
    }
    if (comp != null) {
        final List<ResolveInfo> list = new ArrayList<ResolveInfo>(1);
        final ActivityInfo ai = getActivityInfo(comp, flags, userId);
        if (ai != null) {
            final ResolveInfo ri = new ResolveInfo();
            ri.activityInfo = ai;
            list.add(ri);
        }
        return list;
    }
    // reader
    boolean sortResult = false;
    boolean addEphemeral = false;
    boolean matchEphemeralPackage = false;
    List<ResolveInfo> result;
    final String pkgName = intent.getPackage();
    synchronized (mPackages) {
        if (pkgName == null) {
            List<CrossProfileIntentFilter> matchingFilters = getMatchingCrossProfileIntentFilters(intent, resolvedType, userId);
            // Check for results that need to skip the current profile.
            ResolveInfo xpResolveInfo = querySkipCurrentProfileIntents(matchingFilters, intent, resolvedType, flags, userId);
            if (xpResolveInfo != null) {
                List<ResolveInfo> xpResult = new ArrayList<ResolveInfo>(1);
                xpResult.add(xpResolveInfo);
                return filterIfNotSystemUser(xpResult, userId);
            }
            // Check for results in the current profile.
            result = filterIfNotSystemUser(mActivities.queryIntent(intent, resolvedType, flags, userId), userId);
            addEphemeral = isEphemeralAllowed(intent, result, userId, false);
            // Check for cross profile results.
            boolean hasNonNegativePriorityResult = hasNonNegativePriority(result);
            xpResolveInfo = queryCrossProfileIntents(matchingFilters, intent, resolvedType, flags, userId, hasNonNegativePriorityResult);
            if (xpResolveInfo != null && isUserEnabled(xpResolveInfo.targetUserId)) {
                boolean isVisibleToUser = filterIfNotSystemUser(Collections.singletonList(xpResolveInfo), userId).size() > 0;
                if (isVisibleToUser) {
                    result.add(xpResolveInfo);
                    sortResult = true;
                }
            }
            if (hasWebURI(intent)) {
                CrossProfileDomainInfo xpDomainInfo = null;
                final UserInfo parent = getProfileParent(userId);
                if (parent != null) {
                    xpDomainInfo = getCrossProfileDomainPreferredLpr(intent, resolvedType, flags, userId, parent.id);
                }
                if (xpDomainInfo != null) {
                    if (xpResolveInfo != null) {
                        // If we didn't remove it, the cross-profile ResolveInfo would be twice
                        // in the result.
                        result.remove(xpResolveInfo);
                    }
                    if (result.size() == 0 && !addEphemeral) {
                        result.add(xpDomainInfo.resolveInfo);
                        return result;
                    }
                }
                if (result.size() > 1 || addEphemeral) {
                    result = filterCandidatesWithDomainPreferredActivitiesLPr(intent, flags, result, xpDomainInfo, userId);
                    sortResult = true;
                }
            }
        } else {
            final PackageParser.Package pkg = mPackages.get(pkgName);
            if (pkg != null) {
                result = filterIfNotSystemUser(mActivities.queryIntentForPackage(intent, resolvedType, flags, pkg.activities, userId), userId);
            } else {
                // the caller wants to resolve for a particular package; however, there
                // were no installed results, so, try to find an ephemeral result
                addEphemeral = isEphemeralAllowed(intent, null, /*result*/
                userId, true);
                matchEphemeralPackage = true;
                result = new ArrayList<ResolveInfo>();
            }
        }
    }
    if (addEphemeral) {
        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveEphemeral");
        final EphemeralResolveInfo ai = getEphemeralResolveInfo(mContext, mEphemeralResolverConnection, intent, resolvedType, userId, matchEphemeralPackage ? pkgName : null);
        if (ai != null) {
            if (DEBUG_EPHEMERAL) {
                Slog.v(TAG, "Adding ephemeral installer to the ResolveInfo list");
            }
            final ResolveInfo ephemeralInstaller = new ResolveInfo(mEphemeralInstallerInfo);
            ephemeralInstaller.ephemeralResolveInfo = ai;
            // make sure this resolver is the default
            ephemeralInstaller.isDefault = true;
            ephemeralInstaller.match = IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART | IntentFilter.MATCH_ADJUSTMENT_NORMAL;
            // add a non-generic filter
            ephemeralInstaller.filter = new IntentFilter(intent.getAction());
            ephemeralInstaller.filter.addDataPath(intent.getData().getPath(), PatternMatcher.PATTERN_LITERAL);
            result.add(ephemeralInstaller);
        }
        Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
    }
    if (sortResult) {
        Collections.sort(result, mResolvePrioritySorter);
    }
    return result;
}
Also used : ActivityInfo(android.content.pm.ActivityInfo) IntentFilter(android.content.IntentFilter) ArrayList(java.util.ArrayList) UserInfo(android.content.pm.UserInfo) EphemeralResolveInfo(android.content.pm.EphemeralResolveInfo) ResolveInfo(android.content.pm.ResolveInfo) PackageParser(android.content.pm.PackageParser) ComponentName(android.content.ComponentName) EphemeralResolveInfo(android.content.pm.EphemeralResolveInfo) NonNull(android.annotation.NonNull)

Example 78 with IntentFilter

use of android.content.IntentFilter in project platform_frameworks_base by android.

the class PackageManagerService method dumpDomainString.

private String dumpDomainString(String packageName) {
    List<IntentFilterVerificationInfo> iviList = getIntentFilterVerifications(packageName).getList();
    List<IntentFilter> filters = getAllIntentFilters(packageName).getList();
    ArraySet<String> result = new ArraySet<>();
    if (iviList.size() > 0) {
        for (IntentFilterVerificationInfo ivi : iviList) {
            for (String host : ivi.getDomains()) {
                result.add(host);
            }
        }
    }
    if (filters != null && filters.size() > 0) {
        for (IntentFilter filter : filters) {
            if (filter.hasCategory(Intent.CATEGORY_BROWSABLE) && (filter.hasDataScheme(IntentFilter.SCHEME_HTTP) || filter.hasDataScheme(IntentFilter.SCHEME_HTTPS))) {
                result.addAll(filter.getHostsList());
            }
        }
    }
    StringBuilder sb = new StringBuilder(result.size() * 16);
    for (String domain : result) {
        if (sb.length() > 0)
            sb.append(" ");
        sb.append(domain);
    }
    return sb.toString();
}
Also used : IntentFilter(android.content.IntentFilter) ArraySet(android.util.ArraySet) IntentFilterVerificationInfo(android.content.pm.IntentFilterVerificationInfo)

Example 79 with IntentFilter

use of android.content.IntentFilter in project chromeview by pwnall.

the class ProxyChangeListener method registerReceiver.

private void registerReceiver() {
    if (mProxyReceiver != null) {
        return;
    }
    IntentFilter filter = new IntentFilter();
    filter.addAction(Proxy.PROXY_CHANGE_ACTION);
    mProxyReceiver = new ProxyReceiver();
    mContext.getApplicationContext().registerReceiver(mProxyReceiver, filter);
}
Also used : IntentFilter(android.content.IntentFilter)

Example 80 with IntentFilter

use of android.content.IntentFilter in project chromeview by pwnall.

the class AudioManagerAndroid method registerHeadsetReceiver.

@CalledByNative
public void registerHeadsetReceiver() {
    if (mReceiver != null) {
        return;
    }
    mOriginalSpeakerStatus = mAudioManager.isSpeakerphoneOn();
    IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
    mReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (Intent.ACTION_HEADSET_PLUG.equals(intent.getAction())) {
                try {
                    mAudioManager.setSpeakerphoneOn(intent.getIntExtra("state", 0) == 0);
                } catch (SecurityException e) {
                    Log.e(TAG, "setMode exception: " + e.getMessage());
                    logDeviceInfo();
                }
            }
        }
    };
    mContext.registerReceiver(mReceiver, filter);
}
Also used : Context(android.content.Context) IntentFilter(android.content.IntentFilter) Intent(android.content.Intent) BroadcastReceiver(android.content.BroadcastReceiver) CalledByNative(org.chromium.base.CalledByNative)

Aggregations

IntentFilter (android.content.IntentFilter)1505 Intent (android.content.Intent)516 Context (android.content.Context)305 BroadcastReceiver (android.content.BroadcastReceiver)285 PendingIntent (android.app.PendingIntent)155 RemoteException (android.os.RemoteException)80 Handler (android.os.Handler)65 ComponentName (android.content.ComponentName)55 PowerManager (android.os.PowerManager)50 View (android.view.View)50 Uri (android.net.Uri)42 Test (org.junit.Test)42 ArrayList (java.util.ArrayList)39 TextView (android.widget.TextView)37 HandlerThread (android.os.HandlerThread)34 ResolveInfo (android.content.pm.ResolveInfo)30 File (java.io.File)30 PackageManager (android.content.pm.PackageManager)28 Point (android.graphics.Point)28 IOException (java.io.IOException)28