- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 android 应用程序,它在一个 Activity 中有一个按钮,当用户单击该按钮时,它应该创建另一个 Activity ,该 Activity 应该在我自己的 ListView 中显示我的所有联系信息。我的代码如下
package com.softtrends.practice.contactmanager;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ContactManagerActivity extends Activity implements OnClickListener{
final int PICK_CONTACT_REQUEST=1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button contacts=(Button) findViewById(R.id.contacts);
contacts.setOnClickListener(this);
}
@Override
public void onClick(View v){
Intent contactIntent = new Intent(this, ContactsActivity.class);
startActivity(contactIntent);
}
}
package com.softtrends.practice.contactmanager;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ContactsActivity extends ListActivity {
private Cursor cur;
private String names[];
private void getData(){
cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
null, null,null, null);
startManagingCursor(cur);
names=new String[cur.getCount()];
int nameCol=cur.getColumnIndex(PhoneLookup.DISPLAY_NAME);
int i=0;
while(cur.moveToNext()){
names[i]=cur.getString(nameCol);
System.out.println(names[i]);
i++;
}
cur.close();
}
public void onCreate(Bundle bundle){
super.onCreate(bundle);
getData();
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_view, names));
ListView lv=getListView();
lv.setTextFilterEnabled(true);
}
}
在运行此应用程序时,它按预期显示了第一个 Activity ,但是当我单击该按钮时,出现了强制关闭错误,并且在 logcat 中,该错误显示在我调用查询方法的那一行。
我的日志是
01-25 14:07:05.239: DEBUG/dalvikvm(127): GC_EXPLICIT freed 179 objects / 9288 bytes in 163ms
01-25 14:07:09.249: INFO/ActivityManager(59): Starting activity: Intent{ cmp= com.softtrends.practice.contactmanager/.ContactsActivity }
01-25 14:07:09.389: ERROR/DatabaseUtils(164): Writing exception to parcel
01-25 14:07:09.389: ERROR/DatabaseUtils(164): java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=386, uid=10040 requires android.permission.READ_CONTACTS
01-25 14:07:09.389: ERROR/DatabaseUtils(164): at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:271)
01-25 14:07:09.389: ERROR/DatabaseUtils(164): at android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:149)
01-25 14:07:09.389: ERROR/DatabaseUtils(164): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:111)
01-25 14:07:09.389: ERROR/DatabaseUtils(164): at android.os.Binder.execTransact(Binder.java:288)
01-25 14:07:09.389: ERROR/DatabaseUtils(164): at dalvik.system.NativeStart.run(Native Method)
01-25 14:07:09.389: DEBUG/AndroidRuntime(386): Shutting down VM
01-25 14:07:09.389: WARN/dalvikvm(386): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): FATAL EXCEPTION: main
01-25 14:07:09.420: ERROR/AndroidRuntime(386): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.softtrends.practice.contactmanager/com.softtrends.practice.contactmanager.ContactsActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=386, uid=10040 requires android.permission.READ_CONTACTS
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.os.Handler.dispatchMessage(Handler.java:99)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.os.Looper.loop(Looper.java:123)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at java.lang.reflect.Method.invokeNative(Native Method)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at java.lang.reflect.Method.invoke(Method.java:521)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at dalvik.system.NativeStart.main(Native Method)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=386, uid=10040 requires android.permission.READ_CONTACTS
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.os.Parcel.readException(Parcel.java:1247)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:330)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.content.ContentProviderProxy.query(ContentProviderNative.java:366)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.content.ContentResolver.query(ContentResolver.java:245)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at com.softtrends.practice.contactmanager.ContactsActivity.onCreate(ContactsActivity.java:29)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-25 14:07:09.420: ERROR/AndroidRuntime(386): ... 11 more
01-25 14:07:09.439: WARN/ActivityManager(59): Force finishing activity com.softtrends.practice.contactmanager/.ContactsActivity
01-25 14:07:09.439: WARN/ActivityManager(59): Force finishing activity com.softtrends.practice.contactmanager/.ContactManagerActivity
01-25 14:07:09.579: DEBUG/dalvikvm(59): GC_FOR_MALLOC freed 11214 objects / 557344 bytes in 116ms
01-25 14:07:09.839: DEBUG/SntpClient(59): request time failed: java.net.SocketException: Address family not supported by protocol
01-25 14:07:09.980: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{450d30d0 com.softtrends.practice.contactmanager/.ContactsActivity}
01-25 14:07:15.710: DEBUG/dalvikvm(164): GC_EXPLICIT freed 121 objects / 13752 bytes in 148ms
01-25 14:07:20.443: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{4509d8d0 com.softtrends.practice.contactmanager/.ContactManagerActivity}
01-25 14:07:20.443: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{450d30d0 com.softtrends.practice.contactmanager/.ContactsActivity}
有些人可能认为根据 logcat,它需要 READ_CONTACTS 权限。但是让我告诉大家,我已经在我的 menifest 文件中设置了这个权限。这是我的 list 文件。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.softtrends.practice.contactmanager"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<user-permission android:name="android.permission.READ_CONTACTS"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ContactManagerActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ContactsActivity"></activity>
</application>
</manifest>
最佳答案
正如日志所说,您需要 android.permission.READ_CONTACTS,因此将其添加到 list 中:
<manifest>
....
<uses-permission android:name="android.permission.READ_CONTACTS" />
</manifest>
如果你也需要写入,添加
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
关于android - 在 android 中获取联系人时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8999028/
我对 c# 有点陌生,我在尝试围绕这个 if-then 语句尝试实现时遇到了一些麻烦。 这是我的目标:当用户将订单输入系统时,将为每个订单创建一个唯一的 orderID。但是,一些附加功能是用户可以选
我已经搜索了这个特定的错误,发现根本问题涉及循环计数错误并导致程序超出数组的界限。 但是,当我将每个数组降低到数组开始丢失输出数据的程度后,它继续抛出相同的错误。我对 C/C++ 仍然是新手,但任何对
我不明白为什么我运行这个小程序时屏幕上没有任何显示? while 循环甚至开始了吗? #include #include int main() { char word[20]; char
我接手了一个用 Perl 编写的项目,它有一些依赖项,例如 Template::Toolkit , Image::ExifTool , 和 GD仅举几例。目前,这些依赖项使用 --prefix 构建到
我想对一个字段进行累积总和,但只要遇到 0 就重置聚合值。 这是我想要的一个例子: data.frame(campaign = letters[1:4] , date=c("jan","
不久前,该项目的 gradle 构建运行良好,但现在一直失败并显示以下错误(带有 --info 标志的输出): Starting process 'Gradle Test Executor 1'. W
我是编程新手,想用 Java 制作一个掷骰子程序来执行。代码如下: import java.math.*; public class Dices { public static int dice1=0
这个问题已经有答案了: What is a StringIndexOutOfBoundsException? How can I fix it? (1 个回答) 已关闭 5 年前。 我对 Java 完
这个方法一直抛出标题中的异常,我找不到原因,我已经通过连接创建了其他表,并且所有引用的表都已创建。我正在使用嵌入式JavaDB . private void createEvidenceTable()
我刚开始上课,这是我第三次尝试上课。我遇到了一个 NameError,我真的不知道如何解决。看看我的程序,看看你能不能帮忙。 import random import math import pyga
好吧,这是我的困境,我向 JFrame 添加了三个面板。第一个(不可见)第二个(可见)和第三个(不可见)..我使用第一个面板作为菜单,当您选择一个选项时,第一个面板被制作(可见),然后第三个面板被制作
我的部分代码遇到问题。如果我选择选项 A,它会运行并给我正确的答案,但是,如果我选择选项 S 或 M,它不会给我任何结果,只会去到它应该去的地方。已经尝试将 if 更改为 else if,但它显示“预
我这里有一些代码,但我正在努力解决它,因为我似乎无法掌握这个文件指针的东西。我对使用文件还很陌生。我见过类似的其他问题,并且尝试了对其他人有效的解决方案,但由于某种原因它们对我不起作用。这是出现问题的
我们有一个很大的应用程序,我们已经将 TODO 规则添加到质量门中,如果发现 TODO 注释,它会给出错误。如果我们只是删除 TODO 注释(这很可怕),它会起作用,但添加 TODO 注释的整个目的就
我正在尝试编写一个名为 isVowel 的函数,它接受一个字符(即长度为 1 的字符串)并在它是元音、大写或小写时返回“true”。如果该字符不是元音字母,该函数应返回“false”。 这看起来应该可
我一直在努力完成我正在做的这个小项目,但由于某种原因它无法正常工作。 问题是当我第一次访问该页面并单击出现在主要部分中的第一个链接时,它会根据需要显示弹出框。现在,当我点击另一天,例如星期天并尝试点击
我正在尝试制作一个 WPF 应用程序。我的窗口内有一个数据网格。我制作了另一个窗口,将新数据添加到我的数据网格中。虽然它按照我想要的方式工作,但我不断遇到异常。我的 MySQL 代码: using S
我试图在我似乎无法使 NSUserDefaults 正常工作的程序中保存几个首选项。如果有人可以查看我的代码并查看是否有任何错误,我们将不胜感激 NSString *kGameIsPaused = @
设置 SymmetricDS版本是3.9.1(也试过3.9.0) 设置是从 postgres 9.5.3 到 postgres 9.5.3 Windows 10 pc(客户端节点)到 Windows
经过长时间的努力,我终于(差不多)完成了我的java菜单程序。但是,我无法让我的返回更改功能在我的代码末尾工作。它给出了非常奇数的数字。有什么想法吗? 代码: import java.io.*; im
我是一名优秀的程序员,十分优秀!