/** Implementation is provided by the parent class. */
  @Override
  public void attachInfo(Context context, ProviderInfo info) {
    mAuthority = info.authority;

    mMatcher = new UriMatcher(UriMatcher.NO_MATCH);
    mMatcher.addURI(mAuthority, "root", MATCH_ROOTS);
    mMatcher.addURI(mAuthority, "root/*", MATCH_ROOT);
    mMatcher.addURI(mAuthority, "root/*/recent", MATCH_RECENT);
    mMatcher.addURI(mAuthority, "root/*/search", MATCH_SEARCH);
    mMatcher.addURI(mAuthority, "document/*", MATCH_DOCUMENT);
    mMatcher.addURI(mAuthority, "document/*/children", MATCH_CHILDREN);

    // Sanity check our setup
    if (!info.exported) {
      throw new SecurityException("Provider must be exported");
    }
    if (!info.grantUriPermissions) {
      throw new SecurityException("Provider must grantUriPermissions");
    }
    if (!android.Manifest.permission.MANAGE_DOCUMENTS.equals(info.readPermission)
        || !android.Manifest.permission.MANAGE_DOCUMENTS.equals(info.writePermission)) {
      throw new SecurityException("Provider must be protected by MANAGE_DOCUMENTS");
    }

    super.attachInfo(context, info);
  }
 public ContentProvider addProvider(
     Class<? extends ContentProvider> providerClass, String authority) throws Exception {
   ContentProvider provider = providerClass.newInstance();
   ProviderInfo info = new ProviderInfo();
   info.authority = authority;
   provider.attachInfo(mProviderContext, info);
   resolver.addProvider(authority, provider);
   return provider;
 }
  /** Implementation is provided by the parent class. */
  @Override
  public void attachInfo(Context context, ProviderInfo info) {
    mAuthority = info.authority;

    mMatcher = new UriMatcher(UriMatcher.NO_MATCH);
    mMatcher.addURI(mAuthority, "root", MATCH_ROOTS);
    mMatcher.addURI(mAuthority, "root/*", MATCH_ROOT);
    mMatcher.addURI(mAuthority, "root/*/search", MATCH_SEARCH);
    mMatcher.addURI(mAuthority, "document/*", MATCH_DOCUMENT);
    mMatcher.addURI(mAuthority, "document/*/children", MATCH_CHILDREN);
    mMatcher.addURI(mAuthority, "tree/*/document/*", MATCH_DOCUMENT_TREE);
    mMatcher.addURI(mAuthority, "tree/*/document/*/children", MATCH_CHILDREN_TREE);

    super.attachInfo(context, info);
  }
示例#4
0
 public void attachInfo(Context context, ProviderInfo providerinfo)
 {
     super.attachInfo(context, providerinfo);
     if (providerinfo.exported)
     {
         throw new SecurityException("Provider must not be exported");
     }
     if (!providerinfo.grantUriPermissions)
     {
         throw new SecurityException("Provider must grant uri permissions");
     } else
     {
         mStrategy = getPathStrategy(context, providerinfo.authority);
         return;
     }
 }