gpt4 book ai didi

android - 联系人 CursorLoader 返回空结果

转载 作者:行者123 更新时间:2023-11-30 01:41:25 27 4
gpt4 key购买 nike

我有具有 list 权限的应用程序

    <uses-permission android:name="android.permission.READ_CONTACTS" />

我的 Activity 尝试加载联系人:

    eDeviceRecordsLoader contactsLoader = new eDeviceRecordsLoader(this);
loaderActivity.getLoaderManager().initLoader(R.id.ab_control_device_records_loader, null, contactsLoader);

eDeviceRecordsLoader:

    public class eDeviceRecordsLoader implements LoaderCallbacks<Cursor>
{
public eDeviceRecordsLoader(Context _context)
{
context = _context;
}
@Override
public Loader<Cursor> onCreateLoader(int _id, Bundle _args)
{
loaderId = _id;
return new CursorLoader(context,
ContactsContract.Contacts.CONTENT_URI,
PROJECTION,
SELECTION,
null,
null);
}
@Override
public void onLoadFinished(Loader<Cursor> _loader, Cursor _data)
{
if(_loader.getId() != loaderId) { return; }
if(_data.moveToFirst())
{
eDeviceRecords records = new eDeviceRecords();
do
{
String currentContactLookupKey = _data.getString(_data.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
long currentContactId = _data.getLong(_data.getColumnIndex(ContactsContract.Contacts._ID));

records.put(currentContactId, new eDeviceRecord(currentContactId, currentContactLookupKey));
}
while(_data.moveToNext());
//another work
}
}
protected static final String SELECTION = "(" + ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1" + ")";
protected static final String[] PROJECTION =
{
ContactsContract.Contacts._ID,
ContactsContract.Contacts.LOOKUP_KEY,
ContactsContract.Contacts.STARRED,
};
}

80% 的手机可以正常工作并加载联系人。但是有些手机有额外的应用程序安全设置权限(版本 API < 23)并且可以锁定应用程序访问权限(持续或通过密码/密码或需要用户批准)联系人和其他权限。 list 中已授予权限,但应用程序无权访问且光标始终为空。

问题:我如何检查这个额外的权限并提醒用户授予他们?

最佳答案

不知道此时设备发生了什么,我建议听取评论的建议并确保代码中没有缺陷,在此之后;您可以放入某种锁屏监听器并像这样处理您的应用程序,因此会显示一条消息,如果您在屏幕锁定时无法发送 toast ,则在锁定时登录并在此之前显示警告,或者您可以在第一次使用该应用程序时或每次启动该应用程序时发出警告(对用户来说很烦人)。

在决定如何提醒用户时,这将取决于您希望这样做的积极程度。

你可以:

  1. Put 是应用程序首次启动时的初始屏幕,通知用户可能会出现的 pin 限制。
  2. 创建一个 toast,并警告可能需要 pin。
  3. 创建一个对话框,用户必须关闭该对话框以确保用户交互,从而获得确认。

恐怕这不是您正在寻找的理想解决方案。

关于android - 联系人 CursorLoader 返回空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454700/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com