如何解决我正在尝试在Android Studio上使用Read Call Log,但它给出一个错误,提示没有这样的列:last_modified
我正在尝试在Android Studio上使用Read Call Log,但它给出一个错误,提示没有这样的列:last_modified我做错了什么?
MainActivity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//request for permission
if(ActivityCompat.checkSelfPermission(this,Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,Array(1) {
Manifest.permission.READ_CALL_LOG
},101)
} else {
displayLog()
}
}
override fun onRequestPermissionsResult(
requestCode: Int,permissions: Array<out String>,grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode,permissions,grantResults)
if(requestCode==100 && grantResults[0]==PackageManager.PERMISSION_GRANTED)
displayLog()
}
@SuppressLint("MissingPermission")
private fun displayLog() {
var from = listof<String>(CallLog.Calls.NUMBER,CallLog.Calls.DURATION,CallLog.Calls.TYPE).toTypedArray()
var result = contentResolver.query(CallLog.Calls.CONTENT_URI,cols,null,"${CallLog.Calls.LAST_MODIFIED} DESC")
var to = intArrayOf(R.id.textViewName,R.id.textViewType,R.id.textViewDuration,R.id.textViewDate)
var adapter = SimpleCursorAdapter(applicationContext,R.layout.call_log_layout,result,from,to,0)
listView.adapter = adapter
}
09-28 20:14:52.826 26822-26822 / com.example.myapplication E / AndroidRuntime:致命异常:main 流程:com.example.myapplication,PID:26822 java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.myapplication / com.example.myapplication.MainActivity}: android.database.sqlite.sqliteException:无此类列:last_modified (代码1):,编译时:SELECT _id,数字,类型,持续时间,日期 FROM调用WHERE(((((type!= 4))))ORDER BY last_modified DESC 在android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2594) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2685) 在android.app.ActivityThread.access $ 900(ActivityThread.java:188) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1530) 在android.os.Handler.dispatchMessage(Handler.java:111) 在android.os.Looper.loop(Looper.java:210) 在android.app.ActivityThread.main(ActivityThread.java:5839) 在java.lang.reflect.Method.invoke(本机方法) 在java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1113) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879) 原因:android.database.sqlite.sqliteException:否这样的列:last_modified(代码1):,而编译时:SELECT _id,number, 类型,持续时间,日期FROM调用WHERE(((((type!= 4))))ORDER BY last_modified DESC 在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:186) 在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142) 在android.content.ContentProviderProxy.query(ContentProviderNative.java:421) 在android.content.ContentResolver.query(ContentResolver.java:523) 在android.content.ContentResolver.query(ContentResolver.java:467) com.example.myapplication.MainActivity.displayLog(MainActivity.kt:50)上的> 在com.example.myapplication.MainActivity.onCreate(MainActivity.kt:29) 在android.app.Activity.performCreate(Activity.java:6177) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112) 在android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2541) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2685) 在android.app.ActivityThread.access $ 900(ActivityThread.java:188) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1530) 在android.os.Handler.dispatchMessage(Handler.java:111) 在android.os.Looper.loop(Looper.java:210) 在android.app.ActivityThread.main(ActivityThread.java:5839) 在java.lang.reflect.Method.invoke(本机方法) 在java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1113) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879)09-28 20:14:52.835 26822-26822 / com.example.myapplication I / Process:正在发送 信号。 PID:26822 SIG:9
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。