Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Android小部件查询内容_Android_Android Widget - Fatal编程技术网

从Android小部件查询内容

从Android小部件查询内容,android,android-widget,Android,Android Widget,我正在创建一个包含一些联系信息的Android小部件 我发现getContentResolver()方法只存在于Activity类中,而不存在于AppWidgetProvider类中 如何从小部件查询内容 像这样: Cursor people=getContentResolver().query(一些查询) 更新: @凌驾 公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId) { 字符串people

我正在创建一个包含一些联系信息的Android小部件

我发现getContentResolver()方法只存在于Activity类中,而不存在于AppWidgetProvider类中

如何从小部件查询内容

像这样:

Cursor people=getContentResolver().query(一些查询)

更新:

@凌驾 公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId) { 字符串people=getContacts(上下文); //和别人做点什么。。。 } 私有字符串getContacts(上下文) { 字符串peopleStr=“”; 字符串[]投影=新字符串[]{ContactsContract.Contacts.\u ID,ContactsContract.Contacts.DISPLAY\u NAME}; 字符串排序器=Contacts contract.Contacts.DISPLAY_NAME+“整理本地化ASC”; 字符串选择=Contacts contract.Contacts.IN_VISIBLE_GROUP+“=”+(“1”)+”; Cursor people=context.getContentResolver().query(Contacts contract.Contacts.CONTENT_URI、投影、选择、null、排序器); while(people.moveToNext()) { int nameFieldColumnIndex=people.getColumnIndex(ContactsContract.Data.DISPLAY\u NAME); peopleStr+=people.getString(nameFieldColumnIndex)+“\n”; } 人; 回归人民; }

getContentResolver()实际上是在类中定义的。这意味着,可以通过在appwidgetprovider.onupdate()和那些相关方法中传递的上下文调用它

程序/小部件在我尝试将其插入主屏幕后崩溃。我在原来的帖子中添加了一个例子。没关系。我忘了在AndroidManifest.xml中添加READ_CONTACTS-permission @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { String people = getContacts(context); // Do something with people... } private String getContacts(Context context) { String peopleStr = ""; String[] projection = new String[] { ContactsContract.Contacts._ID,ContactsContract.Contacts.DISPLAY_NAME }; String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '" + ("1") + "'"; Cursor people = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, projection, selection, null, sortOrder); while(people.moveToNext()) { int nameFieldColumnIndex = people.getColumnIndex(ContactsContract.Data.DISPLAY_NAME); peopleStr += people.getString(nameFieldColumnIndex) + "\n"; } people.close(); return peopleStr; }