Tasker: Disable keyguard when at home

In this post I’ll explain you how to use Tasker to define a trusted zone (for example your home) where Tasker will automatically disable your keyguard when you enter it. If you leave your secure zone Tasker will enable the keyguard again so that your phone is secure again.

Apps needed:

Let us define the trusted zone where Tasker should deactivate the keyguard. In this example I’ll use the WLAN SSID to identify the secure zone. If this doesn’t completely fit your needs feel free to modify it. You can for example activate the profile in the afternoon or something else.

The secure zone can be described in Tasker using the following profile:

Profile: Trusted Zone (2)
State: Wifi Near [ SSID:YOUR_WLAN_SSID MAC:* Capabilities:* Min. Activate Signal Level:0 Channel:0 Toggle Wifi:Off ]
Enter: Disable Keyguard (3)
A1: Secure Settings [ Configuration:Clear Password/Wait For Unlock Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ]

Tasker task for entering the trusted zone.
Close
Tasker task for entering the trusted zone.

Please change the SSID YOUR_WLAN_SSID to your WLAN SSID. A advantage in this case is the option “Wait for Unlock” which I’ve activated. This forces you to enter the correct pattern one time even in the secure zone before Tasker will remove the keyguard. This is important because if your phone is stolen the theft should not be able to activate it by simply driving to your secure location. So without the pattern a theft will be unable to enter your phone.

In the same way we can define the untrusted zone that is given when you leave your trusted zone. You can achieve this creating the following profile:

Profile: Untrusted Zone (4)
State: Not Wifi Connected [ SSID:* MAC:* IP:* ]
Enter: Untrusted / Set Pin (5)
A1: Wait [ MS:0 Seconds:30 Minutes:0 Hours:0 Days:0 ]
A2: If [ %PACTIVE ~ *,untrusted zone,* ]
A3: Secure Settings [ Configuration:Screen Dim
5 Seconds Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] If [ %SCREEN ~ off ]
A4: Secure Settings [ Configuration:Set Pin Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ]
A5: End If

Tasker task for entering the untrusted zone.
Close
Tasker task for entering the untrusted zone.

With these two profiles the whole thing is done. Now Tasker removes your keyguard when entering the secure zone (after typing in the pattern one time) and enable it again when you leave the secure area. Have fun with this!

Android 4.2 Jelly Bean – Headphones with remote – get rid of long click “bug”; Tasker tricks to get acoustic feedback

Today I’ll tell you how to get rid of the “feature” that your ICS (Android 4.1) or Jelly Bean (Android 4.2) Android version provides you. When you use headphones with a remote you maybe have noticed that clicking long on your headset button (the one that allows you to answer a phone call) starts Google Search/Google Now. This behavior is not as nice at it seems because it breaks a lot of remote settings. In my case it broke everything since I own a Philips SHE9005A/00. These headphones come with a remote that only has one button. So you can just use the patterns “click”, “click click”, and so on if you’re not able to use long clicks also.

If this fits your problem and you’re rooted, you can do the following steps.
Make a backup of the following two files: /system/usr/keylayout/Generic.kl and /system/usr/keylayout/sec_jack.kl. You can do this using the adb pull command. What we’ll now do is change these files in a way that we flip the middle with the next button. Android knows remotes that have three buttons (previous button, middle button, next button) even if your remote only provides one physical button. We use that only the middle button’s long press is mapped to Google Search. So we change the mappings for the middle and the next key and can therefore use the long click actions again. I hope you understand what I mean. ;)

Okay how do we do this? After you’ve done a backup of the two files mentioned above you have to copy them. We’ll use the copy for our modifications and push them to the device afterwards. Open both files and change

key 163 MEDIA_NEXT (WAKE)
...
key 226 HEADSETHOOK (WAKE)

to

key 225 MEDIA_NEXT (WAKE)
...
key 163 HEADSETHOOK (WAKE)

I’ve written the WAKE flag in brackets since it’s only presented in one file. You should NOT write the brackets two but leave everything as it is and only change the numbers. After this slightly modification push the two files back to your device (you can use adb push).

After that you have to reboot your device. Then install the App Headset Button Controller (there is a free version for trial, the full version is unfortunately not for free). Now you have to remember that we changed the middle and the next button. Therefore you have to make all your settings at “advanced” -> “Right button actions”. There you can make all the settings for single click, double click, triple click, long click, click and hold, and so on.

After making your settings you’re done. Have fun with the long clicks again.
(via xda; thanks to kenkiller)

Make sure you've enabled the setting "Allow External Access" in the Tasker preferences.
Close
Make sure you've enabled the setting "Allow External Access" in the Tasker preferences.
For our purposes we'll not use these commands since we changed the key mapping. But there you can check how the click patterns look like.
Close
For our purposes we'll not use these commands since we changed the key mapping. But there you can check how the click patterns look like.
Make all your settings at "Right button actions"
Close
Make all your settings at "Right button actions"
Here you can change everything the way you like.
Close
Here you can change everything the way you like.

Additional cool stuff using Tasker

Get acoustic feedback for previous and next song actions

Using the application mentioned above you can enable or disable a beep sound each time an action is performed. But it’s even better to get some sort of information like “next” or “previous” depending on your action. How to do this?

I’ll present you a solution that requires Tasker. If you don’t have Tasker, you have to buy it. Since I use it for a lot of things to automate my Android phone I can recommend this software.

Okay, so what to do with it? Create the following two new tasks:

Previous Song (13)
A1: Say [ Text:Previous Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Continue Task Immediately:On ]
A2: Media Control [ Cmd:Previous Simulate Media Button:Off ]
A3: Media Control [ Cmd:Previous Simulate Media Button:Off ]

Next Song (12)
A1: Say [ Text:Next Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Continue Task Immediately:On ]
A2: Media Control [ Cmd:Next Simulate Media Button:Off ]

Let’s say you want to use double click for the next song. Then go to the app “HeadsetButton Controller” -> “advanced” -> “Right button actions” -> “Double click” and choose “Default command” -> “Tasker task”. Then choose “Next Song”. Important: Notice that you’ve enabled the option “Allow External Access” at the Tasker app. You can do the same thing with the tripple click using the previous song Tasker profile.

Tasker profile for the previous song task.
Close
Tasker profile for the previous song task.
Tasker profile for the next song task.
Close
Tasker profile for the next song task.
Use a Tasker task for a click pattern will allow you to read out everything you want.
Close
Use a Tasker task for a click pattern will allow you to read out everything you want.

Let Android read out the current song for you

Sometimes you want to know what’s the name of the current song without looking at your phone. Use Tasker to read out the current song title.

Create a new Tasker task:

Read Song Title (14)
A1: Say [ Text:Current song: %MTRACK Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Continue Task Immediately:Off ]

Then apply this task to some click profile as I’ve described above.

For me it was necessary to force Tasker to update the %MTRACK variable. To do so create an additional task

Profile: Test (15)
Event: Variable Set [ Variable:%MTRACK Value:* ]
Enter: Flash Track (16)
A1: Flash X [ Text:%MTRACK Long:Off ]

Where I’ve disabled A1 since all these flash messages are annoying. But in my case I had to create a new profile that reacts to a %MTRACK variable change. Otherwise the variable wasn’t auto updated by Tasker in my case.

Tasker profile for the read song task. #1, #2 and #4 are disabled and only for testing purposes. You don't have to implement them.
Close
Tasker profile for the read song task. #1, #2 and #4 are disabled and only for testing purposes. You don't have to implement them.
Dummy task since #1 is disabled.
Close
Dummy task since #1 is disabled.

eBay: Verkauftools fuer neue Verkaeufer

Gerade wollte ich bei eBay einen Artikel einstellen. Dazu habe ich mir den Artikel mit der Software GarageSale komplett erstellt und wollte ihn ueber dieses Tool einstellen. Das quittiert eBay mit der Fehlermeldung

Wir möchten neue private Verkäufer wie Sie dabei unterstützen, ihre Käufer zufriedenzustellen und erfolgreich zu verkaufen. Aus diesem Grund stehen Ihnen Verkäufertools zum gebündelten Einstellen noch nicht zur Verfügung, da diese eher für erfahrene Verkäufer geeignet sind. Bitte nutzen Sie das vereinfachte oder das reguläre Verkaufsformular, um Ihre Artikel einzustellen. Wenn 90 Tage nach Ihrem ersten Verkauf vergangen sind und Sie 10 oder mehr Bewertungspunkte als Verkäufer haben (Bewertungspunkte als Käufer werden hier nicht angerechnet), können Sie auch Verkäufertools zum gebündelten Einstellen nutzen.

Man soll also erstmal das viel kompliziertere Online-Formular von eBay verwenden, weil das laut eBay einfacher zu bedienen ist. Sonst geht es noch wertes eBay? Laecherlich ist das …

Arduino-Bundle fuer TextMate startklar machen

Ich habe gerade fuer meinen geliebten Arduino eine Alternative zur Standard-IDE gesucht. Bevorzugt wollte ich fuer den Texteditor TextMate eine Erweiterung haben, die ich dann auch gefunden habe. Sie nennt sich treffenderweise Arduino TextMate Bundle und kann kostenfrei heruntergeladen werden. Nach der Installation funktionierte allerdings der Uploads von Sketches zum Arduino nicht wie gewuenscht. Das Kompilieren endete mit folgender Fehlermeldung:

/Applications/Arduino.app/Contents/Resources/Java/libraries/Wire/Wire.cpp:195: error: ‘twi_transmit’ was not declared in this scope

Der Grund dafuer ist, dass im Arduino-Paket, warum auch immer, die Datei twi.c fehlte. Die Loesung ist es, sich diese Datei aus dem Netz herunter zu laden und mit mv ~/Downloads/twi.c /Applications/Arduino.app/Contents/Resources/Java/libraries/Wire/utility/twi.c an die richtige Stelle zu kopieren.

Anschliessend sollte der Upload funktionieren. Es erschliesst sich mir allerdings nicht, warum diese Datei nicht standardmaessig mit ausgeliefert wird.

Religionsfreiheit vs. koerperliche Unversehrtheit

Gerade habe ich einen Artikel bei Florian drueben gelesen, der mich motiviert jetzt auch mal was zu dem Thema zu schreiben. Ich empfehle dem Leser dieses Artikels auch unbedingt den von Florian zu lesen.

Derzeit wird darueber diskutiert, ob es legal ist, wenn Eltern ihr Kind aus religioesen Gruenden beschneiden lassen. Aktuell hat das Landgericht Koeln entschieden, dass Eltern ihr Kind nicht beschneiden lassen duerfen – wenn es dafuer keinen medizinischen Grund gibt. Und das ist gut so!

Im Grunde genommen muss hier abgewaegt werden, was wichtiger ist: die koerperliche Unversehrtheit des Kindes oder die Religionsfreiheit. Beide Freiheiten sind im Grundgesetz verankert – nur welche wiegt schwerer? Das Gericht argumentiert

Gemäß § 1627 Satz 1 BGB sind vom Sorgerecht nur Erziehungsmaßnahmen gedeckt, die dem Wohl des Kindes dienen. Nach wohl herrschender Auffassung in der Literatur [...] entspricht die Beschneidung des nicht einwilligungsfähigen Knaben weder unter dem Blickwinkel der Vermeidung einer Ausgrenzung innerhalb des jeweiligen religiös gesellschaftlichen Umfeldes noch unter dem des elterlichen Erziehungsrechts dem Wohl des Kindes. Die Grundrechte der Eltern aus Artikel 4 Abs. 1, 6 Abs. 2 GG werden ihrerseits durch das Grundrecht des Kindes auf körperliche Unversehrtheit und Selbstbestimmung gemäß Artikel 2 Abs.1 und 2 Satz 1 GG begrenzt. [...] Die in der Beschneidung zur religiösen Erziehung liegende Verletzung der körperlichen Unversehrtheit ist, wenn sie denn erforderlich sein sollte, jedenfalls unangemessen. [...] Zudem wird der Körper des Kindes durch die Beschneidung dauerhaft und irreparabel verändert. Diese Veränderung läuft dem Interesse des Kindes später selbst über seine Religionszugehörigkeit entscheiden zu können zuwider. Umgekehrt wird das Erziehungsrecht der Eltern nicht unzumutbar beeinträchtigt, wenn sie gehalten sind abzuwarten, ob sich der Knabe später, wenn er mündig ist, selbst für die Beschneidung als sichtbares Zeichen der Zugehörigkeit zum Islam entscheidet [...].

Quelle

Die Argumentation der Juden, dies sei das Aus des Judentums in Deutschland halte ich fuer einen Schnellschuss und sehe dies, will man es hart formulieren, schon fast als einen Erpressungsversuch.
Unabstreitbar ist, dass die Beschneidung im Judentum einen wichtigen Platz einnimmt und seit vielen Jahrtausenden zelebriert wird. Allerdings aendert das nichts daran, dass es nicht konform mit der Gesetzeslage in Deutschland ist. Und damit ist es strafbar. Punkt. Da hilft auch keine Argumentation mit der Tradition (die ich sowieso fuer eine der schwaechsten Argumentationen insgesamt halte). Die Politik darf sich schlicht nicht hinreissen lassen, wegen einer Religion (Judentum, Christentum, Islam, ganz egal …) eine Ausnahme zu machen. Denn die koerperliche Unversehrtheit ist entschieden viel wichtiger zu werten, als die Religionsfreiheit. Dieser Grundsatz muss beibehalten werden, da es hier um einen Stuetzpfeiler in unserer Auffassung von Recht handelt. Auch wenn die Religionen, in diesem Fall die Juden, mit dem Urteil nicht zufrieden sind und jammern, darf hier auf keinen Fall nachgegeben werden. Auch darf man sich nicht von etwaigen Argumenten der Juden wegen ihrer “besonderen Rolle” in Deutschland beeinflussen lassen – das hat damit alles nichts zu tun. Man muss rational bleiben und logisch ueberlegen. Es geht hier auch nicht um die Juden, sondern es koennte auch jede andere Religion sein. Das Ergebnis muss das gleiche sein, egal wer da jetzt vor einem steht.

Und wenn die Religion dann ernsthaft der Meinung ist, dass Deutschland aus diesem Grund kein geeigneter Platz fuer sie ist, wenn sich die Religion als so unflexibel erweist, dann steht es ihnen frei das Land verlassen. Und das ist nicht anti-semitisch, nicht rassistisch und auch nicht boese gemeint. Das ist einfach logisch. Denn in Deutschland gibt es dann nur noch zwei Moeglichkeiten fuer sie: breche mit dem Gesetz oder der Religion.
Ich will niemandem in seine Religion reden, aber vielleicht sollte man auch einmal darueber nachdenken, was das denn fuer eine Religion ist, die eine Koerperverletzung notwendig macht, um dazu zu gehoeren. So richtig einladend wirkt das ja nicht.

Als Fazit laesst sich festhalten: Die koerperliche Unversehrtheit ist der Religionsfreiheit vorzuziehen. Das war bisher so und muss so bleiben. Schlussendlich haengt es an der Religion mit dieser Gegebenheit klar zu kommen. Erpressen lassen darf sich ein Staat deswegen allerdings nicht.

Nachtrag vom 12. September 2012:
Ich hatte bezueglich diesem Thema eine sehr interessante Diskussion mit einem Bekannten von mir. Dieser hat mir zwei Artikel empfohlen, die ich gerne hier weiter empfehle. Der eine ist aus der Kolumne von Harald Martenstein und heißt “Der liebe Gott muss halt mal fünfe gerade sein lassen”. In diesem Artikel geht es um die Beichte im Christentum, die, sofern man so argumentiert wie ich oben, also rein logisch, auch nicht erlaubt sein duerfte. Der andere Artikel ist aus der Frankfurter Rundschau und trägt den Titel “Beschnitten und traumatisiert”. Er ist ein Erfahrungsbericht von einem Juden, der in seiner Kindheit von seinem Vater nicht beschnitten wurde, da die Umstaende eine zu grosse Gefahr darstellten. Spaeter dann hat sich der Autor selbst zum Judentum und damit der Beschneidung bekannt. Der Artikel legt Nahe, dass ein Wandel stattfindet, allerdings recht langsam. Zudem fordert der Autor, den Religionen Zeit fuer die Anpassung zu geben.

Beide Arikel sind auf ihre Weise interessant geschrieben und absolut zum Lesen empfohlen. Der Artikel von Martenstein ist polemisch-satirisch geschrieben und ganz am Ende loest der Autor die Spannung, in dem er eine 180 Grad-Wendung macht und doch kein Verbot der Beichte fordert. Aber der Artikel macht eines klar: Selbst in Deutschland, einem Vorreiter der Saekularisierung, gibt es noch immer Stellen, bei denen der Staat eng mit der Religion verwoben ist. Von daher kann man die Forderung der anderen Religionen nachvollziehen, auch Sonderregelungen zu wuenschen. Arugmentiert man wie ich oben, muesste man komplett alles umkrempeln. Da das aber schwierig zu gestalten sein duerfte, steht man vor einem Problem: Raeumt der Staat der einen Religion mehr Freiheiten ein, als der anderen? Ist das vereinbar mit dem Grundsatz der Religionsfreiheit? Sofern nicht alle Religionen gleichgestellt werden und der Staat nicht komplett von der Religion getrennt wird, wird es also nicht gerecht zugehen koennen. Ich kann daher zu einem gewissen Grad die Religionen, abseits vom Christentum, verstehen, die jetzt auch gerne eine Sonderbehandlung haetten.

Im anderen Artikel ist das zu sehen, was ich mir wuensche: ein Mensch entscheidet selbst, ob er einer Religion beitreten moechte, oder nicht. Er entscheidet sich pro Religion und laesst sich als Erwachsener beschneiden um zur Religion zu gehoeren. Allerdings, und das ist der Haken an der Geschichte, sind die Umstaende, in denen das alles passiert, die falschen. Der Vater des Mannes laesst ihn als Kind nicht beschneiden, weil er mit der Gefahr aufwaechst, dann als Jude erkannt und dadurch im Nachteil zu sein. Allerdings zeigt dieser Erfahrungsbericht auch, dass die Menschen selbststaendig zur Religion kommen, wenn es ihnen denn wichtig ist. Vielleicht sollte man, und das ist meine Forderung an alle Religionen, die Personen selbst im volljährigen Alter entscheiden lassen. Was gibt es denn besseres als eine Bekenntnis zum Glauben, bei der man weiss, dass die Person sie auch wirklich ernsthaft und im Vollbesitz aller geistigen Kraefte getroffen hat? Wohl nichts.
Zum anderen zeigt der Artikel auf, das die Muehlen von Religionen langsam mahlen. Wandel braucht Zeit und genau diese fordert der Autor ein. Allerdings ist das, wie ich oben geschrieben habe, nicht in Einklang zu bringen mit der Gesetzeslage. Was also tun? Ich erwarte von den Religionen ihren Mitgliedern hier entgegen zu kommen und selbst einmal darueber nachzudenken und endlich mal schneller und flexibler zu sein in der Entscheidungsfindung. Das muss moeglich sein, da sich die Mitglieder sonst in einer recht misslichen Lage befinden. Dafuer kann aber weniger der Staat, der solche Ritualien verbietet, als vielmehr die Religion etwas, die den Mitgliedern kommunizieren koennte, dass beispielsweise eine Beschneidung vor dem 18-ten Lebensjahr nicht notwendig ist, wenn diese im jeweiligen Land rechtlich nicht umsetzbar ist. Damit waere allen geholfen und der Wandel der Religion kann dann immer noch stattfinden.

Bei nicht allem oben Geschriebenen war mein Bekannter meiner Meinung und das ist auch gut so und wichtig. Denn nur ueber viele Meinungen kann man eine Gesamtmeinung bilden und diese Themen muessen diskutiert werden. Ich hoffe nur, dass man meinen Artikel auch richtig versteht. Keinesfalls will ich irgendwen des Landes verweisen oder sonst irgendwie “rausmobben”. Ich bin der Meinung wir muessen einen Konsens finden. Aber als vernunftbegabter Mensch hoffe ich, dass wir in solchen Diskussionen die Vernuft nicht aussen vor lassen – ist es doch genau jede, die uns auszeichnet.