20 展訊Sprd設定-電池-識別賬戶服務action
阿新 • • 發佈:2018-11-26
1. 目的
不進行攔截賬戶服務
2. 識別賬戶服務
主要在bing-service中判斷action是否匹配ACTION_AUTHENTICATOR_INTENT
import static android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT; if ("android".equals(callerApp) && intent != null && ACTION_AUTHENTICATOR_INTENT.equals(intent.getAction()) // 當前是否有使用者操作行為 && isUserTouchActive()) { if (DEBUG) Slog.d(TAG, "bind Account service :" + targetApp + " from " + callerApp); return true; }
3. 應用層介面
public static HashMap<String, String> getAccountAuthenticators(Context context) { PackageManager pm = context.getPackageManager(); HashMap<String, String> accountList = new HashMap<String, String>(); Intent intent = new Intent("android.accounts.AccountAuthenticator"); List<ResolveInfo> resolveInfoList = pm.queryIntentServices(intent, PackageManager.GET_DISABLED_COMPONENTS); for (ResolveInfo resolveInfo : resolveInfoList) { ServiceInfo packinfo = resolveInfo.serviceInfo; if ((packinfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { accountList.put(packinfo.packageName, packinfo.name); Log.d(TAG, "getAccountAuthenticators packageName = " + packinfo.packageName + ", name " + packinfo.name); } } return accountList; }