当前位置: 首页 > 知识库问答 >
问题:

当我试图通过使用android studio的手机访问联系人时,该程序崩溃

沙宣
2023-03-14

当我使用这行代码时,程序崩溃:

cursor cursor=getContentResolver().Query(ContactsContract.Contacts.Content_URI,null,null,null,null,null,null);

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //TextView textView=(TextView) findViewById(R.id.Tv);
        //textView.setText(Name);
        TextView textView=(TextView) findViewById(R.id.Tv);
        //ContentResolver contentResolver=getContentResolver();
        Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
        String Name;
        if(cursor.getCount() > 0){
            while(cursor.moveToNext()){
                Name=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                textView.setText(Name);
            }
        }
        cursor.close();
    }
}

下面是我得到的错误:

-------崩溃开始07-28 15:01:42.622 252 7-2527/com.example.MateusJose.Contacts E/AndroidRuntime:致命异常:主进程:com.example.MateusJose.Contacts,PID:2527 java.lang.Runtime异常:无法启动activity组件信息{com.example.MateusJose.Contacts/com.example.MateusJose.Contacts.MainActivity}:java.lang.SecurityException:拒绝权限:从ProcessRecord打开提供程序com.android.Providers.Contacts.Provider2{t android.app.activitythread.main(activitythread.java:6077)在java.lang.Reflect.Method.Invoke(本机方法)在com.android.internal.os.zygoteInit$methodandargscaller.run(zygoteInit.java:865)在com.android.internal.os.zygoteInit.main(zygoteInit.java:755)原因:java.lang.SecurityException:拒绝权限:从ProcessRecord{5BE2630:1515)在Android.content.contentresolver.query(contentresolver.java:514)在Android.content.contentresolver.query(contentresolver.java:472)在com.example.mateusjose.contacts.mainactivity.oncreate(mainactivity.java:29)在Android.app.activity.performcreate(activity.java:6662)在Android.app.instrumentation.callactivityoncreate(activity.java:1118)在

共有2个答案

丁豪
2023-03-14

使用“运行时权限”并尝试。若要确定问题是否由“运行时权限”引起,请转到“设置”中的“应用程序信息”并检查“权限”列表。如果“联系人”权限已禁用,请打开“联系人”权限。

邓鸿信
2023-03-14

您需要在清单上添加以下内容:

对于API23+,您需要请求用户允许访问联系人。有关如何询问的更多详细信息,请参阅以下内容。

 类似资料:
  • 我正在使用oauth 1.0,到目前为止,我可以成功地从谷歌获得访问令牌。但是当我想从https://www.google.com/m8/feeds/contacts/default/full检索用户联系人时,它返回401错误,没有进一步的解释。 我发现来自Google playground的信息可能不太准确,例如,步骤3和步骤5中的签名基本字符串包含oauth_version,但它是错误的。(如

  • 本文向大家介绍android利用ContentResolver访问者获取手机联系人信息,包括了android利用ContentResolver访问者获取手机联系人信息的使用技巧和注意事项,需要的朋友参考一下 利用ContentResolver内容访问者,获取手机联系人信息我做了两种不同的做法。第一种,直接获取所有手机联系人信息,展示在ListView中。第二种,通过Butten按钮跳转到系统的手机

  • 所以我目前正在努力开发一个应用程序,需要一个谷歌地图API。每当我尝试加载地图时,我的应用程序将我的地图实现为片段类的子类: 编辑:原来我只是错过了应该被引用的API键。我很抱歉提出了一个低质量的问题

  • 我正试图连接到google Contacts api以访问保存在google中的联系人/联系人,但它抛出了一个TokenResponseException:401 Unauthorized。我对谷歌Oauth2有些陌生。0.我已按要求将服务帐户密钥文件下载到我的项目根目录。 代码如下: 但是,会引发以下异常: 通用域名格式。谷歌。应用程序编程接口。客户啊。oauth2。TokenResponseE

  • 我只有一个窗口,在那里你推菜单->首选项并启动一个意图 它自动地表示必须关闭应用程序。 未捕获的处理程序:由于未捕获的异常导致线程主退出 java.lang.runtimeException:无法启动活动ComponentInfo{com.example.app/com.example.app.PreferenciasGenerales}: java.lang.ClassCastException

  • 我的应用程序有一个问题,我最近开始在Android studio中编程,但我遇到了一个无法解决的问题。所以我有一个包含4个活动的主页面,当我在模拟器中运行程序时,应用程序打开,其中3个活动工作完美,但当我点击打开activity时,我尝试实现滚动条的一个活动崩溃了。 代码如下: 还有撞车: 07/03 16:54:21:正在启动应用程序$adb install-multiple-r-t-p com