


Detailliertes Beispiel, wie Uniapp die Telefonaufzeichnungsfunktion implementiert (mit Code)
Dieser Artikel vermittelt Ihnen relevantes Wissen über Uniapp. Er stellt vor allem vor, wie Sie Uniapp zum Tätigen von Anrufen und zum Synchronisieren von Aufzeichnungen verwenden. Ich hoffe, dass er für alle hilfreich ist.
uniapp realisiert die Anrufaufzeichnungsfunktion
Kürzlich muss ich eine Funktion implementieren, um das Mobiltelefon anzurufen, um einen Anruf über uniapp zu tätigen. Nach dem Auflegen werde ich gleichzeitig aufzeichnen Telefon, ich werde die Aufnahmedatei hochladen.
const recorderManager = uni.getRecorderManager(); onLoad(option) { let self = this; recorderManager.onStop(function (res) { console.log("res",res) self.end_time = Math.round(new Date().getTime() / 1000); let voicePath = res.tempFilePath; self.voicePath = voicePath; self.closeTimeOut(); uni.showToast({ icon: 'loading', title: "请稍后...", duration: 0 }); uni.uploadFile({ url: self.upload_url, filePath: voicePath, name: "file", formData: { id: self.phoneInfo.id, start_time: self.start_time, end_time: self.end_time, phone: self.phoneNumber }, header: { Authorization: "Bearer " + uni.getStorageSync(EnumData.token) }, success: (res) => { // console.log("文件上传成功") console.log(res.data); }, fail(err) { console.log("文件上传失败") console.log(err); }, complete() { self.start_time = 0; self.end_time = 0; uni.hideToast(); } }) }); this.getCallStatus(); } getCallStatus() { let that = this; let maintest = plus.android.runtimeMainActivity(); let Contexttest = plus.android.importClass("android.content.Context"); let telephonyManager = plus.android.importClass("android.telephony.TelephonyManager"); let telManager = plus.android.runtimeMainActivity().getSystemService(Contexttest.TELEPHONY_SERVICE); let receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', { onReceive: function (Contexttest, intent) { plus.android.importClass(intent); let phoneStatus = telManager.getCallState(); that.callStatus = phoneStatus; //电话状态 0->空闲状态 1->振铃状态 2->通话存在 switch (phoneStatus) { case 0: console.log("3、电话挂断,上传录音") // 结束录音 recorderManager.stop(); break; case 1: // console.log('1、振铃状态'); break; case 2: console.log('2、通话存在') // 延迟录音 that.start_time = Math.round(new Date().getTime() / 1000); recorderManager.start({ duration: EnumData.audioDuration, // 时长 10分钟 sampleRate: EnumData.audioSampleRate, // 码率 }); break; } } }); let IntentFilter = plus.android.importClass('android.content.IntentFilter'); let filter = new IntentFilter(); filter.addAction(telephonyManager.ACTION_PHONE_STATE_CHANGED); maintest.registerReceiver(receiver, filter); },
Die Berechtigungen, die Sie beantragen müssen, können in App.vue abgelegt werden
if (plus.os.name == 'Android') { plus.android.requestPermissions( ['android.permission.ANSWER_PHONE_CALLS',//手动 挂断和接听 需要这个权限 "android.permission.MODIFY_AUDIO_SETTINGS",//手动 挂断和接听 需要这个权限 "android.permission.CALL_PHONE",//手动 挂断和接听 需要这个权限 "android.permission.READ_PHONE_STATE",//>监听电话状态 需要这个权限 "android.permission.READ_CALL_LOG",//获取号码需要这个权限 "android.permission.READ_AUDIO" // 录音权限 ], function(resultObj) { var result = 0; for (var i = 0; i < resultObj.granted.length; i++) { var grantedPermission = resultObj.granted[i]; console.log('已获取的权限:' + grantedPermission); result = 1 } for (var i = 0; i < resultObj.deniedPresent.length; i++) { var deniedPresentPermission = resultObj.deniedPresent[i]; console.log('拒绝本次申请的权限:' + deniedPresentPermission); result = 0 } for (var i = 0; i < resultObj.deniedAlways.length; i++) { var deniedAlwaysPermission = resultObj.deniedAlways[i]; console.log('永久拒绝申请的权限:' + deniedAlwaysPermission); result = -1 } }, function(error) { console.log('申请权限错误:' + error.code + " = " + error.message); } ); }
Notizen
Im Debugging-Modus können Sie normalerweise Anrufe überwachen und Dateien hochladen, aber nach dem Packen werden sie ungültig?
Allgemeine Mobiltelefonverpackung kann normal verwendet werden. Nach der Verpackung kann es zu den Berechtigungen der Systemeinstellungen gehen und das [Mobilgerät einschalten] aktivieren Statuscode] der Anwendung, das ist es, was mir bisher begegnet ist.
Empfohlenes Lernen: „Uni-App-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel, wie Uniapp die Telefonaufzeichnungsfunktion implementiert (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie entwickle ich eine Uni-App in VSCode? Der folgende Artikel stellt Ihnen ein Tutorial zur Entwicklung einer Uni-App in VSCode vor. Dies ist möglicherweise das beste und detaillierteste Tutorial. Kommen Sie und schauen Sie vorbei!

Wie entwickle ich mit Uniapp eine einfache Kartennavigation? Dieser Artikel wird Ihnen eine Idee zum Erstellen einer einfachen Karte liefern. Ich hoffe, er wird Ihnen hilfreich sein!

Wie entwickle ich mit Uniapp ein Schlangenspiel? Der folgende Artikel führt Sie Schritt für Schritt durch die Implementierung des Snake-Spiels in Uniapp. Ich hoffe, er wird Ihnen hilfreich sein!

Dieser Artikel führt Sie Schritt für Schritt durch die Entwicklung eines Uni-App-Kalender-Plug-Ins und stellt vor, wie das nächste Kalender-Plug-In von der Entwicklung bis zur Veröffentlichung entwickelt wird.

Uni-App-Schnittstelle, globale Methodenkapselung 1. Erstellen Sie eine API-Datei im Stammverzeichnis, erstellen Sie die Dateien api.js, baseUrl.js und http.js im API-Ordner 2.baseUrl.js-Dateicode exportdefault"https://XXXX .test03.qcw800.com/api/"3.http.js-Dateicode-Exportfunktionhttps(opts,data){lethttpDefaultOpts={url:opts.url,data:data,method:opts.method

Dieser Artikel vermittelt Ihnen relevantes Wissen über Uniapp, das hauptsächlich die damit verbundenen Probleme der Implementierung der Funktion „Alle auswählen“ des Mehrfachauswahlfelds organisiert. Der Grund, warum die Funktion „Alle auswählen“ nicht implementiert werden kann, liegt darin, dass das aktivierte Feld des Kontrollkästchens aktiviert ist Dynamisch geändert, der Status auf der Schnittstelle kann sich in Echtzeit ändern, aber das Änderungsereignis der Checkbox-Gruppe kann nicht ausgelöst werden. Ich hoffe, es wird für alle hilfreich sein.

Wie implementiert Uniapp das Laden von Scroll-View-Dropdowns? Im folgenden Artikel geht es um das Dropdown-Laden der Scroll-Ansicht des Uniapp-WeChat-Applets. Ich hoffe, dass es für alle hilfreich ist!

Dieser Artikel vermittelt Ihnen relevantes Wissen über Uniapp. Er stellt vor allem vor, wie Sie Uniapp zum Tätigen von Anrufen und zum Synchronisieren von Aufzeichnungen verwenden. Ich hoffe, dass es für alle hilfreich ist.
