uniapp 安卓獲取短信記錄

async readSMS() { //短信記錄
        // #ifdef APP-PLUS
        return await new Promise((resolve, reject) => {
            if (plus.os.name != 'Android') {
                resolve(null);
                return;
            }
            try {
                var main = plus.android.runtimeMainActivity();
                var Uri = plus.android.importClass('android.net.Uri');
                var ContactsContract = plus.android.importClass('android.provider.ContactsContract');
                var uri = Uri.parse('content://sms/');
                var cr = main.getContentResolver();
                plus.android.importClass(cr);
                var cur = cr.query(uri, null, null, null, null);
                plus.android.importClass(cur);
                cur.moveToFirst();
                let smsLogs = [];
                while (cur.moveToNext()) {
                    var index_Address = cur.getColumnIndex('address');
                    var address = cur.getString(index_Address);
                    //短信內容
                    var index_Body = cur.getColumnIndex('body');
                    var body = cur.getString(index_Body);
                    //類型1接收 2發送
                    var index_Type = cur.getColumnIndex('type');
                    var type = cur.getString(index_Type);
                    smsLogs.push({
                        tel: address,
                        content: body,
                        type: type
                    })
                }
                resolve(smsLogs);
            } catch (e) {
                resolve(null);
                console.error(e);
            }
        });
        // #endif
    }

async needPermission() { //需要的授權
        // #ifdef APP-PLUS
        
        if (plus.os.name != 'Android') {
            
            return;
        }
        return await new Promise((resolve, reject) => {
            plus.android.requestPermissions(
                ['android.permission.READ_CALL_LOG', 'android.permission.WRITE_CALL_LOG',
                    'android.permission.READ_SMS'
                ],
                function(e) {
                    if (e.deniedAlways.length > 0) {
                        resolve(false);
                        return;
                    }
                    if (e.deniedPresent.length > 0) {
                        resolve(false);
                        return;
                    }
                    resolve(true);
                    return;
                },
                function(e) {
                    resolve(false);
                }
            );
        });
        // #endif
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章