我试图访问设备上的联系人,然后在列表中显示它们,但是当我尝试使用游标访问它们时,我收到一条错误,我错过了READ_CONTACTS的权限,但我已经在AndroidManifest中授予了权限.XML
我访问联系人的代码:
public void setupCursor() {
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(this, name + ": " + number, Toast.LENGTH_SHORT).show();
}
cursor.close();
}
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.github.brady131313.textback" >
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21"/>
<uses-permission android:name="ANDROID.PERMISSION.READ_CONTACTS"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ActivityMainSettings"
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=".ActivityContactSelect"
android:label="Select Contacts">
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
错误日志
05-17 17:12:41.544 20202-20202/io.github.brady131313.textback E/AndroidRuntime? …Run Code Online (Sandbox Code Playgroud) 有没有办法存储int []和String [],除了创建一个包含这些的新对象,然后将其存储在realmList中
我有一个对象,它接受String,int []和String []的参数.你不能在领域中存储int []和String [],所以我创建了一个对象
public class Workouts extends RealmObject {
private String workout;
public Workouts() {
}
public Workouts(String workout) {
this.workout = workout;
}
public String getWorkout() {
return workout;
}
public void setWorkout(String workout) {
this.workout = workout;
}
}
Run Code Online (Sandbox Code Playgroud)
和
public class Multiplier extends RealmObject {
private int multiplier;
public Multiplier() {
}
public Multiplier(int multiplier) {
this.multiplier = multiplier;
}
public int getMultiplier() {
return multiplier;
}
public void setMultiplier(int multiplier) { …Run Code Online (Sandbox Code Playgroud) 我必须使用realm对象,一个是带有两个字符串和一个布尔值的基本RealmObject,另一个是该对象的RealmList,以便于访问.当我尝试从我的ContactBook实例获取列表并添加新对象时,我尝试在空对象引用上调用虚方法.但是,我能够获得联系簿的大小,以及联系人的数量,因此这些不是空的.
类我在哪里尝试添加新对象
public void viewSetup() {
setContentView(R.layout.activity_contacts);
ButterKnife.inject(this);
Realm.deleteRealmFile(this);
realm = Realm.getInstance(this);
results = realm.where(ContactBook.class).findAll();
if (toolbar != null) {
setSupportActionBar(toolbar);
}
if (results.size() == 0) {
realm.beginTransaction();
ContactBook contactBook = realm.copyToRealm(new ContactBook());
realm.commitTransaction();
}
}
public void setupCursor() {
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
ContactBook contactBook = results.first();
realm.beginTransaction();
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
if (contactBook.getContacts().where().equalTo("name", name).findAll().size() == 0 && contactBook.getContacts().where().equalTo("number", number).findAll().size() == 0) {
contactBook.getContacts().add(new Contact(name, number, false));
} …Run Code Online (Sandbox Code Playgroud) 我试图在firebase中进行一个简单的测试并保存包含字符串和布尔值的hashmap,但是我无法保存数据,它永远不会被推送. http://hastebin.com/qucocuqexe.cs