Java 类android.content.ContentProvider 实例源码
项目:VirtualAPK
文件:RemoteContentProvider.java
@NonNull
@Override
public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations) throws OperationApplicationException {
try {
Field uriField = ContentProviderOperation.class.getDeclaredField("mUri");
uriField.setAccessible(true);
for (ContentProviderOperation operation : operations) {
Uri pluginUri = Uri.parse(operation.getUri().getQueryParameter(KEY_URI));
uriField.set(operation, pluginUri);
}
} catch (Exception e) {
return new ContentProviderResult[0];
}
if (operations.size() > 0) {
ContentProvider provider = getContentProvider(operations.get(0).getUri());
if (provider != null) {
return provider.applyBatch(operations);
}
}
return new ContentProviderResult[0];
}
项目:VirtualAPK
文件:RemoteContentProvider.java
@Override
public Bundle call(String method, String arg, Bundle extras) {
Log.d(TAG, "call " + method + " with extras : " + extras);
if (extras == null || extras.getString(KEY_WRAPPER_URI) == null) {
return null;
}
Uri uri = Uri.parse(extras.getString(KEY_WRAPPER_URI));
ContentProvider provider = getContentProvider(uri);
if (provider != null) {
return provider.call(method, arg, extras);
}
return null;
}
项目:healthvault-java-sdk
文件:ContentProviderTest.java
public void testBadViewUri() throws Exception {
ContentProvider provider = this.getProvider();
ContentValues values = new ContentValues();
values.put("query", "this is a test");
values.put("date_synced", "1/1/1970");
try
{
provider.insert(
Uri.withAppendedPath(HVContentContract.CONTENT_URI, "records/42/views/43/this-semgment-is-bad"),
values);
Assert.fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
//ignore
}
}
项目:Spork
文件:DefaultContextResolver.java
@Override
@Nullable
public Context resolveContext(Object object) throws Exception {
if (object instanceof View) {
return ((View) object).getContext();
} else if (object instanceof Fragment) {
return ((Fragment) object).getActivity();
} else if (object instanceof Context) {
return (Context) object;
} else if (object instanceof ContentProvider) {
return ((ContentProvider) object).getContext();
} else if (object instanceof ContextProvider) {
return ((ContextProvider) object).getContext();
} else if (object instanceof ViewProvider) {
return ((ViewProvider) object).getView().getContext();
} else {
return null;
}
}
项目:dora
文件:MetaDataParser.java
public String getAuthority(Context context, Class<? extends ContentProvider> providerClass) {
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(),
PackageManager.GET_PROVIDERS);
ProviderInfo[] providers = packageInfo.providers;
if (providers.length > 0) {
for (int i = 0; i < providers.length; i++) {
ProviderInfo provider = providers[i];
if (provider.name.contains(providerClass.getSimpleName())) {
return provider.authority;
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return null;
}
项目:PluginM
文件:PluginStubMainProvider.java
private IContentProvider getIContentProvider(@NonNull PluginInfo pluginInfo, @NonNull ProviderInfo providerInfo) {
if (pluginInfo != null && providerInfo != null) {
ContentProvider contentProvider;
synchronized (mContentProviderMap) {
contentProvider = mContentProviderMap.get(providerInfo.name);
}
if (contentProvider == null) {
contentProvider = installProvider(pluginInfo, providerInfo);
}
if (contentProvider != null) {
return ContentProviderCompat.getIContentProvider(contentProvider);
} else {
throw new RuntimeException("CAN NOT get IContentProvider for " + providerInfo);
}
}
return null;
}
项目:PluginM
文件:PluginStubMainProvider.java
private ContentProvider installProvider(PluginInfo pluginInfo, ProviderInfo providerInfo) {
try {
Logger.d(TAG, "installProvider() providerInfo = " + providerInfo);
Class clazz = pluginInfo.classLoader.loadClass(providerInfo.name);
ContentProvider contentProvider = (ContentProvider) clazz.newInstance();
contentProvider.attachInfo(pluginInfo.baseContext, providerInfo);
synchronized (mContentProviderMap) {
ContentProvider cp = mContentProviderMap.get(providerInfo.name);
if (cp != null) {
Logger.d(TAG, "installProvider() lose race!");
contentProvider = cp;
} else {
mContentProviderMap.put(providerInfo.name, contentProvider);
PluginManager.getInstance(getContext()).callProviderOnCreate(contentProvider, mStubInfo, providerInfo);
}
}
Logger.d(TAG, "installProvider() providerInfo -> " + contentProvider);
return contentProvider;
} catch (Exception e) {
Logger.e(TAG, "installProvider() error! providerInfo = " + providerInfo, e);
}
return null;
}
项目:Multi-Mania-app
文件:SyncUtils.java
/**
* Syncs a list of IData items with the ContentProvider
* @param provider A ContentProvider for querying the database in an API like fashion
* @param models The data items that need syncing
* @throws RemoteException
* @see be.ana.nmct.multimania.model.IData
*/
public static void syncData(ContentProvider provider,List<IData> models) throws RemoteException {
for(IData model: models){
boolean exists = false;
if(model.getId()!=-1){
exists = provider.query(model.getContentUriWithId(),null,null,null,null).getCount()>0;
}
if(exists){
provider.update(model.getContentUri(),
model.getContentValues(),
BaseColumns._ID+"="+model.getId(),
null);
}else{
provider.insert(model.getContentUri(),
model.getContentValues());
}
}
}
项目:android-project-template
文件:ContentResolverRequestQueueTest.java
@Override
protected void setUp() throws Exception {
super.setUp();
// Create test file
final FileOutputStream os = getContext()
.openFileOutput(TEST_FILE_NAME, Context.MODE_PRIVATE);
os.write(TestFiles.TEST_DATA);
os.close();
// Replace IsolatedContext with the normal one
try {
final Field f = ContentProvider.class.getDeclaredField("mContext");
f.setAccessible(true);
f.set(getProvider(), getContext());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
项目:mc_backup
文件:ContentProviderTest.java
private void setUpContentProvider(ContentProvider targetProvider) throws Exception {
mResolver = new ChangeRecordingMockContentResolver();
final String filenamePrefix = this.getClass().getSimpleName() + ".";
RenamingDelegatingContext targetContextWrapper =
new RenamingDelegatingContext(
new ContentProviderMockContext(),
(Context)getActivity(),
filenamePrefix);
mProviderContext = new IsolatedContext(mResolver, targetContextWrapper);
targetProvider.attachInfo(mProviderContext, null);
mProvider = new DelegatingTestContentProvider(targetProvider);
mProvider.attachInfo(mProviderContext, null);
mResolver.addProvider(mProviderAuthority, mProvider);
}
项目:GenericDao
文件:MetaDataParser.java
public static String getAuthority(Context context, Class<? extends ContentProvider> providerClass) {
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(),
PackageManager.GET_PROVIDERS);
ProviderInfo[] providers = packageInfo.providers;
if (providers.length > 0) {
for (int i = 0; i < providers.length; i++) {
ProviderInfo provider = providers[i];
if (provider.name.contains(providerClass.getSimpleName())) {
return provider.authority;
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return null;
}
项目:FullRobolectricTestSample
文件:ShadowContentResolver.java
@Implementation
public final Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
ContentProvider provider = getProvider(uri);
if (provider != null) {
return provider.query(uri, projection, selection, selectionArgs, sortOrder);
} else {
TestCursor returnCursor = getCursor(uri);
if (returnCursor == null) {
return null;
}
returnCursor.setQuery(uri, projection, selection, selectionArgs,
sortOrder);
return returnCursor;
}
}
项目:droidel
文件:ActivityThread.java
private ProviderClientRecord installProviderAuthoritiesLocked(IContentProvider provider,
ContentProvider localProvider, IActivityManager.ContentProviderHolder holder) {
final String auths[] = PATTERN_SEMICOLON.split(holder.info.authority);
final int userId = UserHandle.getUserId(holder.info.applicationInfo.uid);
final ProviderClientRecord pcr = new ProviderClientRecord(
auths, provider, localProvider, holder);
for (String auth : auths) {
final ProviderKey key = new ProviderKey(auth, userId);
final ProviderClientRecord existing = mProviderMap.get(key);
if (existing != null) {
Slog.w(TAG, "Content provider " + pcr.mHolder.info.name
+ " already published as " + auth);
} else {
mProviderMap.put(key, pcr);
}
}
return pcr;
}
项目:droidkit-v4x
文件:SQLite.java
public void clearDatabase() {
final String authority = AUTHORITY_REF.get();
if (!TextUtils.isEmpty(authority)) {
final ContentProviderClient providerClient = mResolver.acquireContentProviderClient(authority);
if (providerClient != null) {
try {
final ContentProvider provider = providerClient.getLocalContentProvider();
if (provider instanceof SQLiteProvider) {
((SQLiteProvider) provider).clearDatabase();
}
} finally {
providerClient.release();
}
}
}
}
项目:EmopAndroid
文件:DataUpdateService.java
public DataUpdateService(Context context, ContentProvider provider){
this.context = context;
this.provider = provider;
lockCache = new LruCache<String, Lock>(200) {
@Override
protected int sizeOf(String key, Lock obj) {
return 1;
}
};
dataPath = context.getDatabasePath("lastUpdate.db");
loadLastUpadte();
syncTimer = new Timer();
syncTimer.scheduleAtFixedRate(new TimerTask(){
@Override
public void run() {
saveLastUpdate();
}}, 1000, 1000 * 60);
}
项目:ipz2014
文件:MetaDataParser.java
public static String getAuthority(Context context, Class<? extends ContentProvider> providerClass) {
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(),
PackageManager.GET_PROVIDERS);
ProviderInfo[] providers = packageInfo.providers;
if (providers.length > 0) {
for (int i = 0; i < providers.length; i++) {
ProviderInfo provider = providers[i];
if (provider.name.contains(providerClass.getSimpleName())) {
return provider.authority;
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return null;
}
项目:VirtualAPK
文件:RemoteContentProvider.java
@Override
public String getType(Uri uri) {
ContentProvider provider = getContentProvider(uri);
Uri pluginUri = Uri.parse(uri.getQueryParameter(KEY_URI));
if (provider != null) {
return provider.getType(pluginUri);
}
return null;
}
项目:VirtualAPK
文件:RemoteContentProvider.java
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
ContentProvider provider = getContentProvider(uri);
Uri pluginUri = Uri.parse(uri.getQueryParameter(KEY_URI));
if (provider != null) {
return provider.query(pluginUri, projection, selection, selectionArgs, sortOrder);
}
return null;
}
项目:VirtualAPK
文件:RemoteContentProvider.java
@Override
public Uri insert(Uri uri, ContentValues values) {
ContentProvider provider = getContentProvider(uri);
Uri pluginUri = Uri.parse(uri.getQueryParameter(KEY_URI));
if (provider != null) {
return provider.insert(pluginUri, values);
}
return uri;
}
项目:VirtualAPK
文件:RemoteContentProvider.java
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
ContentProvider provider = getContentProvider(uri);
Uri pluginUri = Uri.parse(uri.getQueryParameter(KEY_URI));
if (provider != null) {
return provider.delete(pluginUri, selection, selectionArgs);
}
return 0;
}
项目:VirtualAPK
文件:RemoteContentProvider.java
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
ContentProvider provider = getContentProvider(uri);
Uri pluginUri = Uri.parse(uri.getQueryParameter(KEY_URI));
if (provider != null) {
return provider.update(pluginUri, values, selection, selectionArgs);
}
return 0;
}
项目:VirtualAPK
文件:RemoteContentProvider.java
@Override
public int bulkInsert(Uri uri, ContentValues[] values) {
ContentProvider provider = getContentProvider(uri);
Uri pluginUri = Uri.parse(uri.getQueryParameter(KEY_URI));
if (provider != null) {
return provider.bulkInsert(pluginUri, values);
}
return 0;
}
项目:springreplugin
文件:PluginProviderHelper.java
public ContentProvider getProvider(PluginUri pu) {
if (LogDebug.LOG) {
Log.i(TAG, "getProvider(): Start... pu=" + pu);
}
String auth = pu.transferredUri.getAuthority();
// 已有缓存?直接返回!
ContentProvider cp = mProviderAuthorityMap.get(auth);
if (cp != null) {
if (LogDebug.LOG) {
Log.i(TAG, "getProvider(): Exists! Return now. cp=" + cp);
}
return cp;
}
// 开始构建插件里的ContentProvider对象
cp = installProvider(pu, auth);
if (cp == null) {
if (LogDebug.LOG) {
Log.e(TAG, "getProvider(): Install fail!");
}
return null;
}
// 加入列表。下次直接读缓存
mProviderAuthorityMap.put(auth, cp);
if (LogDebug.LOG) {
Log.i(TAG, "getProvider(): Okay! pu=" + pu + "; cp=" + cp);
}
return cp;
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
PluginProviderHelper.PluginUri pu = mHelper.toPluginUri(uri);
if (pu == null) {
return null;
}
ContentProvider cp = mHelper.getProvider(pu);
if (cp == null) {
return null;
}
return cp.query(pu.transferredUri, projection, selection, selectionArgs, sortOrder);
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
@TargetApi(16)
public Cursor query(Uri uri, String[] projection,
String selection, String[] selectionArgs, String sortOrder,
CancellationSignal cancellationSignal) {
PluginProviderHelper.PluginUri pu = mHelper.toPluginUri(uri);
if (pu == null) {
return null;
}
ContentProvider cp = mHelper.getProvider(pu);
if (cp == null) {
return null;
}
return cp.query(pu.transferredUri, projection, selection, selectionArgs, sortOrder, cancellationSignal);
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
public String getType(Uri uri) {
PluginProviderHelper.PluginUri pu = mHelper.toPluginUri(uri);
if (pu == null) {
return null;
}
ContentProvider cp = mHelper.getProvider(pu);
if (cp == null) {
return null;
}
return cp.getType(pu.transferredUri);
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
public Uri insert(Uri uri, ContentValues values) {
PluginProviderHelper.PluginUri pu = mHelper.toPluginUri(uri);
if (pu == null) {
return null;
}
ContentProvider cp = mHelper.getProvider(pu);
if (cp == null) {
return null;
}
return cp.insert(pu.transferredUri, values);
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
public int bulkInsert(Uri uri, ContentValues[] values) {
PluginProviderHelper.PluginUri pu = mHelper.toPluginUri(uri);
if (pu == null) {
return -1;
}
ContentProvider cp = mHelper.getProvider(pu);
if (cp == null) {
return -1;
}
return cp.bulkInsert(pu.transferredUri, values);
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
PluginProviderHelper.PluginUri pu = mHelper.toPluginUri(uri);
if (pu == null) {
return -1;
}
ContentProvider cp = mHelper.getProvider(pu);
if (cp == null) {
return -1;
}
return cp.delete(pu.transferredUri, selection, selectionArgs);
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
PluginProviderHelper.PluginUri pu = mHelper.toPluginUri(uri);
if (pu == null) {
return -1;
}
ContentProvider cp = mHelper.getProvider(pu);
if (cp == null) {
return -1;
}
return cp.update(pu.transferredUri, values, selection, selectionArgs);
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
public void onLowMemory() {
for (ContentProvider cp : mHelper.mProviderAuthorityMap.values()) {
cp.onLowMemory();
}
super.onLowMemory();
}
项目:springreplugin
文件:PluginPitProviderBase.java
@Override
@TargetApi(14)
public void onTrimMemory(int level) {
for (ContentProvider cp : mHelper.mProviderAuthorityMap.values()) {
cp.onTrimMemory(level);
}
super.onTrimMemory(level);
}
项目:ACDD
文件:ProviderProxy.java
/*****验证ContentProvider实现类是否加载*****/
protected ContentProvider getContentProvider() {
if (this.mContentProvider != null) {
return this.mContentProvider;
}
try {
Class<?> loadClass = Globals.getClassLoader().loadClass(mTargetProvider);
if (loadClass != null) {
Constructor<?> constructor = loadClass.getConstructor();
constructor.setAccessible(true);
this.mContentProvider = (ContentProvider) constructor.newInstance();
Field declaredField = ContentProvider.class.getDeclaredField("mContext");
declaredField.setAccessible(true);
declaredField.set(this.mContentProvider, getContext());
declaredField = ContentProvider.class.getDeclaredField("mReadPermission");
declaredField.setAccessible(true);
declaredField.set(this.mContentProvider, getReadPermission());
declaredField = ContentProvider.class.getDeclaredField("mWritePermission");
declaredField.setAccessible(true);
declaredField.set(this.mContentProvider, getWritePermission());
declaredField = ContentProvider.class.getDeclaredField("mPathPermissions");
declaredField.setAccessible(true);
declaredField.set(this.mContentProvider, getPathPermissions());
this.mContentProvider.onCreate();
return this.mContentProvider;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
项目:ACDD
文件:ProviderProxy.java
@Override
public Cursor query(Uri uri, String[] projection,
String selection, String[] selectionArgs, String sortOrder) {
ContentProvider mContentProvider = getContentProvider();
if (mContentProvider != null) {
return mContentProvider.query(uri, projection, selection, selectionArgs, sortOrder);
}
return null;
}
项目:ACDD
文件:ProviderProxy.java
@Override
public String getType(Uri uri) {
ContentProvider mContentProvider = getContentProvider();
if (mContentProvider != null) {
return mContentProvider.getType(uri);
}
return null;
}
项目:ACDD
文件:ProviderProxy.java
@Override
public Uri insert(Uri uri, ContentValues contentValues) {
ContentProvider mContentProvider = getContentProvider();
if (mContentProvider != null) {
return mContentProvider.insert(uri, contentValues);
}
return null;
}
项目:ACDD
文件:ProviderProxy.java
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
ContentProvider mContentProvider = getContentProvider();
if (mContentProvider != null) {
return mContentProvider.delete(uri, selection, selectionArgs);
}
return 0;
}
项目:ACDD
文件:ProviderProxy.java
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
ContentProvider mContentProvider = getContentProvider();
if (mContentProvider != null) {
return mContentProvider.update(uri, values, selection, selectionArgs);
}
return 0;
}
项目:dora
文件:UriHelper.java
protected String getAuthority(Context context, Class<? extends ContentProvider> providerClass) {
if (providerClass == null) {
return new MetaDataParser().getFirstAuthority(context);
} else {
return new MetaDataParser().getAuthority(context, providerClass);
}
}
项目:PluginM
文件:CommonUtils.java
public static ProviderInfo getProviderInfo(ContentProvider provider) {
PackageManager pm = provider.getContext().getPackageManager();
if (pm != null) {
ComponentName componentName = new ComponentName(provider.getContext(), provider.getClass());
try {
return pm.getProviderInfo(componentName, 0);
} catch (PackageManager.NameNotFoundException e) {
}
}
return null;
}