我正在尝试在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 (将#修改为@)