การใช้ OR ตรรกะในบริบทสำหรับ Tasker


23

สมมติว่าฉันต้องการสร้างบริบทที่ SSID ของการเชื่อมต่อ WiFi เป็น 'ABC' หรือ 'XYZ'

ฉันสามารถดูว่าฉันสามารถสร้างบริบทได้ 2 ที่ แต่ดูเหมือนว่าจะบังคับใช้และตรรกะระหว่างทั้งสองดังนั้นเพื่อให้คำพูดฉันต้องอยู่ใกล้กับทั้ง 'ABC' และ 'XYZ'

วิธีทำให้บริบทเป็นอย่างใดอย่างหนึ่งไม่ใช่ทั้งสองอย่าง?

คำตอบ:


10

ระบุ SSID ในบริบทที่เชื่อมต่อด้วย WiFi เป็นABC/XYZ ซึ่งจะเปิดใช้งานบริบทหากคุณเชื่อมต่อกับ ABC หรือ XYZ

การอ้างอิง: http://tasker.dinglisch.net/userguide/en/matching.html


2
แก้ปัญหาเฉพาะนี้ แต่ไม่ใช่คำถามที่ถามจริง
endolith

20

หรืออาจเป็นไปได้ว่าคุณสามารถใช้เงื่อนไข "กลับด้าน" เพื่อทำงานตรงกันข้าม

หากคุณต้องการเรียกใช้งานเมื่อเชื่อมต่อ WiFi หรือเมื่อโปรไฟล์: A ไม่ได้ใช้งานคุณสามารถตั้งค่าบริบทสำหรับ "WiFi ถูกยกเลิกการเชื่อมต่อ" และ "โปรไฟล์: แทน" มีการใช้งาน "ทั้งคู่ด้วยช่องทำเครื่องหมาย" inverted "และตั้งค่า งานที่ทำตรงกันข้ามถ้าเป็นไปได้

สิ่งนี้ใช้งานได้จริงเพราะ:

(A OR B) = NOT((NOT A) AND (NOT B))


3
คำตอบนี้ดีเพราะมันกว้างกว่าทั่วไป นั่นคือมันทำงานกับบริบทชนิดอื่นที่ไม่ใช่ "Wifi Connected" ตัวอย่างเช่นฉันต้องการสร้างโปรไฟล์เพื่อให้โทรศัพท์อยู่ในโหมดเงียบเมื่อใดก็ตามที่เชื่อมต่อหรือเชื่อมต่อกับนาฬิกา Pebble ของฉัน วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการสร้างโปรไฟล์ "ไม่ได้เชื่อมต่อกับเพบเบิลและไม่ได้เชื่อมต่อ" ซึ่งจะปิดใช้งานโหมดเงียบเมื่อป้อนและเปิดใช้งานโหมดเงียบเมื่อออก กฎหมายของ DeMorgan FTW
Laurence Gonsalves

4

คุณสามารถทำให้การกระทำของคุณขึ้นอยู่กับตัวแปร "% condition = true" และสร้างโปรไฟล์ที่แตกต่างกันสองแบบ:

  • profile a: ตั้งเงื่อนไขเป็น "true"
  • profile b: ตั้งเงื่อนไขเป็น "true"

โปรไฟล์ของคุณ: หากตัวแปร "เงื่อนไข" = เป็นจริงแล้ว ... และจะมีงานออกของคุณ

แต่จะดีถ้าผู้เขียนจะปรับปรุง tasker สำหรับที่ ... :)


2
วิธีนี้ทำให้เกิดปัญหาเมื่อเงื่อนไขอาจถูกตั้งค่าเป็นจริงหรือเท็จโดยทั้งโปรไฟล์และในเวลาเดียวกัน ตัวอย่างเช่นฉันต้องการเปิดบลูทู ธ เมื่ออยู่ในสายหรือในแอพผู้ติดต่อ ฉันตั้งค่า% BluetoothNeeded = 1 ในกรณีใดกรณีหนึ่งและชัดเจนเมื่อออกจากกรณีใดกรณีหนึ่ง ในขณะที่ฉันอยู่ระหว่างการโทรแอพ Contacts จะกลายเป็นแบ็คกราวด์และมักจะถูกระงับเพื่อบันทึกหน่วยความจำซึ่งจะล้าง% BluetoothNeeded เพื่อให้บลูทู ธ ปิดอยู่
Chris Dragon

4

เพียงโพสต์วิธีแก้ปัญหาของฉันหากมีใครมาที่นี่:

สร้างโปรไฟล์สำหรับแต่ละเงื่อนไขในหรือคำสั่งในการป้อน% Reasons + = 1 เมื่อออกจาก% Reasons - = 1

สร้างโปรไฟล์พร้อมเงื่อนไข% เหตุผล> 0 และงานเข้าและออกที่จำเป็น

ไชโย!


2

คุณจะต้องสร้างโปรไฟล์เดียวสำหรับแต่ละบริบทและจับคู่กับการกระทำทีละรายการ


3
หืมนี่หมายความว่าข้าจะไม่สามารถออกจากงานได้จริงเหรอ?
Zombies

2

เพื่อรองรับชุดหูฟังบลูทู ธ ของฉันความปรารถนาของฉันคือการเปิดบลูทู ธ เมื่อฉันอยู่ในแอพติดต่อหรือในการโทร ฉันสามารถทำได้ขณะที่อยู่ในสาย แต่ฉันไม่สามารถแน่ใจได้ว่าชุดหูฟังของฉันเชื่อมต่ออยู่ก่อนที่อีกฝ่ายจะมารับ

ไม่มีวิธีแก้ไขปัญหาใด ๆ ที่โพสต์ไว้แล้วใช้งานได้ การตั้งค่า% BluetoothNeeded เมื่ออยู่ในรายชื่อติดต่อหรืออยู่ระหว่างการโทรหมายความว่าเมื่อมีการโทรเริ่มต้นจะเป็นการเปิดใช้งาน% BlueToothNeeded แต่เมื่อผู้ติดต่อกลายเป็นแบ็คกราวด์แล้วจะปิด% BlueToothNeeded และปิด Bluetooth การใช้การดำเนินการกลับด้านให้ปิดบลูทู ธ เมื่อไม่อยู่ในรายชื่อติดต่อและไม่ได้รับสาย แต่เปิดบลูทู ธ เป็นงานออกเกือบจะทำงานได้ แต่เห็นได้ชัดว่าทาสเกอร์สังเกตช่วงเวลาสั้น ๆ เมื่อผู้ติดต่อสูญเสียสถานะหน้าและโทรยังไม่เริ่ม ปิด

ดังนั้นนี่คือสิ่งที่ทำงานให้ฉันตามบล็อกนี้ :

  1. สร้างงานที่เรียกว่าDummyพร้อมการกระทำของTasks > Wait > 1ms
  2. สร้างโปรไฟล์ที่เรียกว่ามีสภาพของstateInCall State > Phone > Call > Type: Anyเชื่อมโยงกับDummyงาน
  3. สร้างโปรไฟล์ที่เรียกว่ามีสภาพของstateInContacts State > Application > Contactsเชื่อมโยงกับDummyงาน
  4. สร้างโปรไฟล์ที่เรียกว่ามีสภาพของBluetooth Needed State > Variable > Variable Valueตั้งชื่อเพื่อ%PACTIVEแย้มยิ้มไปและมูลค่าให้กับMatches *,stateInCall,*|*,stateInContacts,*อ้างอิงจาก Tasker docs% PACTIVE มีรายการที่คั่นด้วยเครื่องหมายจุลภาคของโปรไฟล์ที่ใช้งานอยู่ซึ่งรายการจะเริ่มต้นและสิ้นสุดด้วยเครื่องหมายจุลภาคเพื่อให้การจับคู่ง่ายขึ้น เชื่อมโยงโปรไฟล์นี้กับงานที่เรียกBluetooth Onว่าเปิดบลูทู ธ โดยใช้Net > Bluetooth > Set: Onแอคชั่น
  5. สร้างงานที่เรียกว่าConditional Bluetooth Offพร้อมคำสั่งต่อไปนี้
    1. ภารกิจ> รอ> 10 วินาที
    2. ภารกิจ> หาก> %PACTIVEไม่ตรงกัน*,stateInCall,*|*,stateInContacts,*
    3. เน็ต> บลูทู ธ > ตั้ง: ปิด
    4. ภารกิจ> สิ้นสุดถ้า
  6. ลองกดในรายละเอียดแล้วเลือกBluetooth Needed ยกเลิกการเลือกPropertiesRestore Settings
  7. กดBluetooth Neededโปรไฟล์อย่างรวดเร็วจนกระทั่งBluetooth Onงานปรากฏอยู่ด้านล่างในคอลัมน์ด้านขวา ลองกดBluetooth Onและเลือกแล้วเลือกAdd Exit TaskConditional Bluetooth Off

Conditional Bluetooth Offจะรอ 10 วินาทีก่อนตรวจสอบซ้ำว่าไม่จริงstateInCallหรือไม่stateInContactsซึ่งจะปิดบลูทู ธ ณ จุดนั้น มิฉะนั้นจะเปิดบลูทู ธ และเมื่อทั้งคู่stateInCallและstateInContactsออกในภายหลังมันจะรอ 10 วินาทีและตรวจสอบอีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.