Articles of android contentprovider

如何使用电子邮件ID更新显示名称?

我正在尝试更新联系人显示名称和电子邮件。经过多次努力实现了以下代码snipet.But有一个问题我提供更新它附加2后我在联系人应用程序中看到它。 ArrayList ops = new ArrayList(); ops.add(ContentProviderOperation .newUpdate( ContactsContract.Data.CONTENT_URI) .withSelection( ContactsContract.CommonDataKinds.Email.CONTACT_ID + ” = ?”, new String[] { String.valueOf(model .getContactid()) }) .withValue(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE) .withValue( ContactsContract.CommonDataKinds.Email.DATA, “priyankay27@gmail.com”) .withValue( ContactsContract.CommonDataKinds.Email.DISPLAY_NAME, “priyanka”) .withValue( ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK) .build()); getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); Context ctx = getApplicationContext(); int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(ctx,”Update successful”, duration); toast.show(); Logger.debug(“Update successful”); 这更新显示名称为“priyanka 2”而不是“priyanka”,因为您看到2在显示名称后附加。

Android WebView不允许加载本地video文件

我有一个带有WebView的应用程序,显示一个HTML文件。 在HTML文件中,有一个按钮,用于请求用户录制video,或从文档文件夹中选择video。 在选择(或录制)video时,它会将带有链接(由Uri编码)的javascript函数调用到video文件,然后将其设置为元素,方法是将其设置为源: function showPreview(previewFile){ console.log(previewFile); document.getElementById(‘previewVideo’).src = previewFile; } 我遇到了这个错误,我一直在寻找,但似乎无法find解决方案: I/chromium﹕ [INFO:CONSOLE(94)] “content://com.android.providers.media.documents/document/video%3A19961”, source: file:///android_asset/index.html (94) W/MediaResourceGetter﹕ permission denied to access network state W/MediaResourceGetter﹕ non-file URI can’t be read due to unsuitable network conditions E/MediaResourceGetter﹕ Unable to configure metadata extractor 如您所见,我正在我的javascript函数中记录video文件的链接,您可以告诉content://com.android.providers.media.documents/document/video%3A19961链接content://com.android.providers.media.documents/document/video%3A19961 。 这就是我在我的代码中加载WebView的方式(当然在XML中有相应的WebView): @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) […]

数字而不是铃声名称

我想获得铃声名称。 我用这个代码 Ringtone ringtone = RingtoneManager.getRingtone(preference.getContext(), Uri.parse(stringValue)); String name = ringtone.getTitle(preference.getContext()); 我得到号码(例如 – 17090)不是铃声名称。 怎么了?

Android BroadcastReceiver,ContentProvider和Activity之间的数据流?

我开发了一个接收广播的应用程序然后启动一个Activity ,其中该Activity查询ContentProvider ,它实时从DNS中提取信息。 我希望能够改变这一点,而不是去: BroadcastReceiver.onReceive() { Intent intent = new Intent(…); intent.setData(…); // set a single String data context.startActivity(intent); } Activity.onCreate() { String value = intent.getData(); // get the String data Cursor = ContentProvider.query(search); … setContentView(…); } 它去: BroadcastReceiver.onReceive() { Cursor = ContentProvider.query(…); if (cursor != null) { Intent intent = new Intent(…); // how […]

权限被拒绝:打开未从uid导出的提供程序com.google.android.apps.photos.contentprovider.MediaContentProvider

当我尝试访问先前存储在SharedPreferences中的照片URI时,我的应用程序仅在android> = 6.0(marshmallow)中崩溃。 虽然图像是第一次检索而没有任何错误。 我正在使用targetSdkVersion 22,因此我不需要在API> = 23中处理运行时权限。 我的清单文件中的权限 我得到的图像如下: // Determine Uri of camera image to save. final File root = new File(Environment.getExternalStorageDirectory() + File.separator + “pics” + File.separator); root.mkdirs(); final String fname = Calendar.getInstance().getTimeInMillis() + “.jpg”; final File sdImageMainDirectory = new File(root, fname); outputFileUri = Uri.fromFile(sdImageMainDirectory); // Camera. final List cameraIntents = new […]

Sporadic IllegalArgumentException:未知的URL内容://

很少得到: Fatal Exception: java.lang.IllegalArgumentException: Unknown URL content://com.example.provider/info at android.content.ContentResolver.insert(ContentResolver.java:1252) Fatal Exception: java.lang.IllegalArgumentException: Unknown authority com.example.provider at android.content.ContentResolver.applyBatch(ContentResolver.java:1247) 很少强调。 一般工作正常没有问题,所以当局设置得很好,但这种情况每隔一段时间就会出现无缘无故。 是否有原因导致ContentResolver无法findContentProvider(即如果尚未设置)?

ContentObserver on content:// sms / in 1.6+?

我有一个内容观察者,它会调查内容:// sms /在android 1.5中,以便我收到有关sms数据库中的更改的通知,并可以相应地对它们做出反应。 但是在1.6中这不起作用,uri是否已从content:// sms /更改为其他内容? 我已经看到内容:// mms-sms /在我的1.6设备上的logcat中popup但是我已经尝试了它并且它不起作用。 这是我的代码 String url = “content://sms/”; Uri uri = Uri.parse(url); getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler)); } class MyContentObserver extends ContentObserver { public MyContentObserver(Handler handler) { super(handler); } @Override public boolean deliverSelfNotifications() { return false; } ContentValues values = new ContentValues(); @Override public void onChange(boolean arg0) { super.onChange(arg0); […]

android:添加日历事件时的EXDATE格式

有人可以解释在向android日历添加事件时如何使用EXDATE吗? 关于应该放置EXDATE的格式,文档还不清楚。 我尝试了很多格式,其中一些是: values.put(Events.EXDATE, “TZID=Europe/London:20130116T080000”); values.put(Events.EXDATE, “20130116T080000Z”); values.put(Events.EXDATE, “20130116T080000”); values.put(Events.EXDATE, “20130116”); 但它们都不起作用。 任何想法如何使一个事件不出现在特定的日期,如果它应该出现在RRULE ?

通过Android上的ContentProvider在应用程序的数据目录中共享图像

我试图通过ContentProvider公开位于我的应用程序的/ data目录中的.png文件,但是没有到达openFile方法,而是调用query 。 现在我只有一个我需要公开以便与其他应用程序共享的图像,如何设置我的Intent来转到openFile而不是query ? Intent shareImageIntent = new Intent(Intent.ACTION_SEND); shareImageIntent.setType(“image/*”); shareImageIntent.putExtra(Intent.EXTRA_STREAM, imageUri); startActivity(Intent.createChooser(shareImageIntent, “Share image”)); Uri的样子 content://my.package.contentprovider/fileName 或者我是否需要为此创建数据库并返回游标? UPDATE 所以这似乎是在除了SMS应用程序之外的所有事情(这是我决定首先测试的)我想支持共享。 这是相关的堆栈跟踪: 引起:java.lang.IllegalArgumentException:对内容的查询:// mypackage.myprovider/someImage.png返回null结果。 at com.android.mms.ui.UriImage.initFromContentUri(UriImage.java:104)at com.android.mms.ui.UriImage。(UriImage.java:63)at com.android.mms.model.ImageModel.initModelFromUri( ImageModel.java:83)位于com.android.mms的com.android.mms.data.WorkingMessage.changeMedia(WorkingMessage.java:481)的com.android.mms.model.ImageModel。(ImageModel.java:65)。 data.WorkingMessage.setAttachment(WorkingMessage.java:375)… 因此,短信应用正在执行查询,而不是直接从openFile中读取,而我的手机上的其他应用似乎都是这样(包括其他Google应用) 有谁知道我需要返回这里以适当地填充查询? 我现在要去AOSP挖掘了。

阅读手机和SIM卡中的所有联系人

编辑:::代码工作。 这是Eclipse的一个问题,代码按预期在logcat中显示输出。 Android 2.3.3 我很擅长使用contentproviders。 我只想尝试一下如何从手机中检索联系人的示例。 我看过几个例子,但是当我在SAMSUNG Mobile上试用它时,没有一个适用于我。 这是我用过的代码…… public class Class_Add_Contact extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_contact); readContacts(); } private void readContacts() { // TODO Auto-generated method stub ContentResolver cr = getContentResolver(); Cursor cur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,null, null); while (cur.moveToNext()) { String name […]