[Q] Change System Setting programmatically - Android Q&A, Help & Troubleshooting

Hello,
I would like to change a setting in system settings.
Unfortunately, it is a custom setting, So I think the only "real API" would be reproduce the change opening the respective activity and select the wanted options.
Any hint if what I plan to do is wrong?
Listen for a specific event to happen (beginning of call / ending of a call)
If the event occurs, Load the activity correspondig to Audio Output selection
Select the checkbox
Close it
It will for sure create some flickering...

Related

[APP] RandomRingtone (100927.01)

I've written a script called "RandomRingtone". This script allows to automatically change the ringtone after each incoming call. It needs MortScript to run (I'm using 4.3b15) and .NET Compact Framework 3.5. Tested on Benq E72, Windows Mobile 6.5 Standard.
Features:
Various work modes:
Regular - it doesn't change ringtone, little useless, but good if we want to "lock" current ringtone for a while,
Random - allows to select random ringtone,
List - user can specify the order of use.
Exlcusion lists: user can specify which ringtones shouldn't be used by script or which calling numbers shouldn't cause to change the ringtone.
Various notification types: after each incoming call name of actually selected ringtone can be shown as a message, displayed on the homescreen or omitted.
Ignore missed calls: when enabled, only answered call will cause to change the ringtone.
Don't change when meeting profile is active: in this profile no ringtone is used so there is no need to change the ringtone.
Detailed informations:
When work mode is set to "Regular", you still can change ringtones. Just click "Next ringtone", then new random ringtone will be chosen. When work mode is set to "Random", each incoming call will cause to select random ringtone. You can also force the change like previously, clicking "Next ringtone". In this mode, when "Loop" option is enabled, each ringtone will be used only once as long as there are ringtones which have been not used yet. When all ringtones will be used, the cycle starts from the beginning. Even if this option is disabled, next ringtone always is different than actually used. When work mode is set to "List", user can create the list with specified usage order. Clicking on ringtone's name will show context menu with options ("Remove", "Move up", "Move down"). When the list ends, it can be repeated or mode can be changed to random or regular (with given default ringtone). Regardless of chosen work mode, user may select to ignore missed calls - ringtone's change will be done only when call was answered.
User can specify excluded ringtones list. These ringtones will not be used by script, so e.g. these ringtones can be assigned individually to some contacts. Clicking on ringtone's name will display additional context menu. There is also one option which may be useful for that purposes - excluding some contacts. Contacts added to the list will not cause change ringtone when they are calling to us. These options are not connected, but when we assign static ringtone to specified contacts, it would be good if their calls will not cause to change the ringtone .. These options give us ability to do that.
Main script ("RandomRingtone.mscr") is automatically executed after each incoming call through other script, "RandomRingtone_loader.mscr", which is executed by "RandomRingtone_preloader0.mscr" or "RandomRingtone_preloader1.mscr". Those scripts are executed by a small program, "RandomRingtone.exe", which is running in the background and checking for incoming call. User should always run main script, not preloader's application or loader's script. When we want to turn on/off preloader, there is an option in main menu - "Active". To automatically start preloader when system starts, enable "Autorun" option in Settings.
After incoming call script can inform us which ringtone is actually choosen. This can be done in two ways: displaying automatically hiding message with countdown (5 sec.) or through plugin on homescreen. I used "CTestUIPlugin" which is the part of "SlidingPanel" (Bronze plugin), unfortunately I don't know how it looks in other phones. In the attachements I've added modified .xml and .cpr files. User may also supress this notifications selecting proper option.
Strings are stored in file "Language.ini". I've created two files (polish and english, sorry for poor translation, there are probably many linguistic errors, so it will be nice if someone would correct this file...). Error / warning / information messages are part of scripts and are only in english. While normal work you shouldn't even see these messages, but when something going wrong, see if in directory where script is stored exists file "ErrorLog.txt".
Ringtones need to be stored in "\Windows" or directly on "\Storage Card".
Installation:
Unpack archive and run "RandomRingtone.mscr". You need to have MortScript installed (tested on 4.3b15).
If you are using "AppToDate", place "RandomRingtone.xml" into your AppToDate folder (usually "\Application Data\AppToDate").
If you are using "SlidingPanel" (Bronze plugin), you can put "SlidingPanel.home.xml" into "\Application Data\Home" and "SlidingPanel_240x320.cpr" into "\Windows" directory. Standard plugin's icon was changed to "2401;2401" (you can do this manually, key "HKLM\Software\Microsoft\CHome\CTestUIPlugin", value "ICONPATHS").
I've attached polish language file, if you want to use them, change name to "Language.ini" and replace with existing one.
Known bugs:
Please report in this topic any bugs, even small or related with poor english translation...
Code:
1. Actual MortScript beta version (4.3b15) seems to has a problem with ExitSub or If...EndIf section, what causes unexpected behaviour even when ExitSub command is in condition which is not true, so shouldn't be processed. By this reason, there is no "Exit" option when we enter into "Ringtones list" submenu, instead of this we need to use "Cancel" softkey.
2. Probably from this same reason MortScript doesn't serve correctly some strings (in "Choice" window), so some ringtones name or options can be displayed incorrectly.
3. Very short incoming calls can cause to not recognize incoming caller number, so when we are using "Excluded contacts" list, script may change ringtone although user is on the list.
4. Few times when system was very low on memory and caller with unknown ID was calling while "Ignore missed calls" was disabled, my phone changed ringtone to default stored in rom.
5. When system is very busy, message which informs about used ringtone may stay in background and not shown.
Changelog:
Version number describes release date (YYMMDD) and version number released in that day.
Code:
100927.01
- Now small .exe application is responsible for incoming call detection, not script like previously. This application is less power consuming than continously running script, which was draining battery too fast.
100503.01
- User can enter script for meeting profile. When meeting profile is active, script will not change the ringtone.
- Minor bugs fixed.
100502.01
- Initial version.
I like it!
An exceptional piece of work!
is it supporting Inesoft Phone 6 ??
I didn't use Inesoft Phone, but it will be working, script uses system registry entries to detect incoming call, not dialer window's title. I don't know exactly what are the features of Inesoft Phone, so some functions may be overlapping but I don't think this happen.
Hi,
I don't know if u r interested in adding any features, but with all the architecture in your script, you might:
Personal tones for text messages
You could also select contacts by using the Cyclone command line app. This way it would pull up the contact list and then select a contact from their...
Of course you would need to handle the playing of the sound for sms.
Mortscript forever?

Tasker app to remove usb plug sounds, and help with Bluetooth notifications

If you are like me and have become annoyed with few settings on the Atrix that were not on your last phone, then you might be able to benefit from some simple settings in tasker. Tasker is a Paid app that lets you change just about anything you don't like with your phone.
I have set up a few tasks to run on my phone that have helped me customize it in ways Motorola didn't allow. There are probably other ways to get the same result but the phone is new and i have not been able to find them. this could be a good thread to add any other options if you have them.
The atrix uses the default notification for plugging in the usb and also for mounting the sd card. here is how i use tasker to remove that.
Task to stop sounds while plugging in
1.new profile (name if desired)
2. state > USB Plugged
3. new task (*should name this one for use with the next one)
4. choose audio >silent mode
5. set mode to on for no sound (or vibrate to vibrate)
*note this puts the phone into vibrate mode or silent mode
6. click the plus to add more to the task
7. choose takser > wait choose time in seconds (i went with 5 seconds)
8 add another using the plus
9. choose audio >silent mode
10. set it to off
What this does-
when you plug the usb in it will change to silent or vibrate mode wait 5 seconds and go back to sound on
(if you desire it to stay in silent mode you will have to adjust settings)
*note you will hear about a half of a second of the notification until tasker kills it. (still better than before)
now if you want to mount the card to the computer it makes another sound
Task the mount sound to silent
1. new profile (name if desired)
2. select event >hardware
3. choose card mounted
4. choose the task you set up from the previous task
Task the unmount sound to silent
1. new task (name)
2. select event > hardware
3. choose card unmounted
4. choose the task you set up in the first task
a couple other things didn't work for me with bluetooth so i did some work arounds
I use the blueant Bluetooth and it reads the sms message to the headset. while a notification is sounding the bt audio is silenced for some reason so i would only catch the end of the message because the notification is going off
you can either set up vibrate mode while connected to bluetooth or make a task to do that only when an sms is received.
Set tasker to vibrate for sms so app can read the message.
1. new profile (name)
2. event > phone >Received text
3. click new task
4. start with audio >silent mode
5. set to vibrate
6. click plus to add
7. choose tasker > wait. i set to 30 seconds to allow the message to be read
8. click the plus to add more
9. audio > silent mode> set to off
10. go back and click on the profile and choose add
11. choose state >bt connected
11A if you want you can choose the BT device you use in this setting as long as it has been paired
* the end result leaves the phone with settings at normal sound
There is also a way to choose a notification to be played when you receive a text (since this does not happen) You can do this if you use BT but don't have an app for it that reads the text
I choose to make it play the audio file for ALL notifications to alert me through BT.
i will show both as they are similar except in one step
Task a media to be played to bluetooth
1. choose new profile (name)
2 a (for ALL notifications) choose >event UI > notification ((this will require you set permission in the settings for tasker (it will show you the option))
2b (for only text message) choose phone > received text
*only choose a OR b
3.choose new task media > Music play
4. search with the magnifying glass to find the file you want to play
5. now go back to the profile and click add
6. State > blutooth connected. (you can choose the BT device of your choice or leave it blank)
what it does-
option A plays the media file to BT when connected for ALL notifications to the phone
option B plays the media file to BT when connected and a TEXT message is recieved
happy tasking
I cant get the first profile to work properly. Every time i plug in I still hear the full sound. But the other two profiles for mount/unmount works, so at least that's good news.
Glad it worked. Not sure why the first profile isn't working. Delete it and start over. Maybe got something wrong? i use vibrate instead of off. maybe try that and see if it doesn it
double post
When I select "Card Mounted" my tasker force closes
I don't have an Atrix but Google led me to this thread and I finally found my answer to disabling the USB debugging notification sound. Thanks.
Glad its working, ive also been able to shut off sound on shutdown, then when the phone reboots, it waits 15 seconds and comes back on
no more annoying sounds

[Q] Using variables in Minimal Text widget

Hey,
I'm new to android and i have used this forums a lot,
But now after i've searched for like several hours (Both here and in google..) for a solution and haven't found it i decided to sign up and ask it...
I'm using "Minimal Text" widget for my lockscreen (WidgetLocker)
and i want to add a Unread SMS Count number,
I Understood i need to create a Locale Variable for this one and read the tutorial on the "Minimalistic Text Wiki".
I Must add i'm also a complete noob with the "Tasker" app and just downloaded it for this particular use of creating a Variable.
The problem is, even after reading and doing exactly what the tutorial says,
And even trying to create a Variable manually in Tasker i just can't display it on the Minimal text widget no matter how much i try..
What could be the problem?
Are you setting the minimalistic text variable? For example, on your text received profile you should have two actions. The first sets a variable, lets say %SMSUNREAD. The second is Minimalistic Text variable, under plugins. For this you configure the variable name to be something else (%MNMLSMSUNREAD for example) and the content is %SMSUNREAD. You then configure Minimalistic text to use %MNMLSMSUNREAD.
Also you need to make sure Tasker is selected in Settings>Accessibility as an Accessibility Service.
Lastly, there seems to be reported issues with Tasker and deodexed roms. Are you running a custom Rom?
Hope that helps.
First of all thanks for the reply,
I noticed i Don't have tasker checked on Accessibility, Neither "Accessibility" checked.
I've checked them both but still, it doesn't show the amount of unread SMS...
here is what i have:
Tasker -
"New SMS" profile:
Received Text,*,* -
Variable Set "%SMSCOUNT" to "%SMSCOUNT + 1"
Minimalistic Text variable settings "%MNMLSMSCOUNT = %SMSCOUNT"
"Reset SMS" profile:
Messages (stock android messages app) -
Variable Set "%SMSCOUNT" to "0"
Minimalistic Text variable settings "%MNMLSMSCOUNT = %SMSCOUNT"
And of course a locale variable in the Minimalistic Text widget of "%MNMLSMSCOUNT" but still, Shows nothing.
I have just done some testing with Tasker and it seems like Nothing i try work,
For example i made a new profile with the task of showing some custom notification when i receive SMS,
or Display a popup when i turn my BT on, and Nothing happens....
What can i do to make tasker even work?!
PS. in my notifications bar i have "No Active Profiles" under tasker although it's all On...
Alright just wanted to update you, got it to work,
Well i just made it from the beginning Not following the tutorial,
Instead of the "%Variable + 1" i used the "Variable Add" oprion and WITHOUT the "Do Math" check.

[Q] Q : "Slim Bean 4.3 Stable" and sound only profile

Hello,
I want to create a "sound only profile" (only sound for calls and sms, NO vibration) in the "System Settings / General / Profiles" section, but it seems I can't set the correct values to do that :laugh:
I have played with the "Ring Mode", "Applications Groups", "Vibrate Mode", ... parameters with no luck. Can any1 help me out here?
s74r69 said:
Hello,
I want to create a "sound only profile" (only sound for calls and sms, NO vibration) in the "System Settings / General / Profiles" section, but it seems I can't set the correct values to do that :laugh:
I have played with the "Ring Mode", "Applications Groups", "Vibrate Mode", ... parameters with no luck. Can any1 help me out here?
Click to expand...
Click to collapse
I'm also on Slim 4.3. I don't actually use the profiles, but having a quick play around with it just now, what happens when you:
1. Pick the settings of a profile (I randomly chose 'Home')
2. Scroll to the bottom of the profile settings
3. Click 'Phone'
4. Turn vibrate off, and sound on.
5. Repeat 3&4 for SMS.
If you also want to disable all vibration in all apps other than the ones specifically listed, then what about repeating steps 3&4 for the 'Other' listing? Ie, two listings above SMS? I would think that would disable all the vibration but make all apps able to play notification sounds, that is for all the apps which aren't specifically listed there. I guess you'd have to configure those individually using steps 3&4.

[Q] Notification Issues with Cyanogenmod CM11

Hi all,
I am having notification issues with Gmail and Hangouts. I cannot change the notification tone or vibration, it just stays in default. I am aware where the setting is, it just doesn't work. This problem happened in a past CM11 build, but I solved the problem using this thread. The problem is with the profiles. Under default profile, the settings work as intended. Under any other profile, the default settings over ride everything. The solution was to remove gmail and hangouts from the application groups in the profile menu. Now, however, the application groups feature was removed from CM11 and I have no way to solve the problem anymore. Please help me, and feel free to respond if you have experienced the same problem.
Problem Solved
So I figured this out, no help from you guys . I'll describe the problem and then the solution.
Problem: The profile feature uses /data/system/profiles.xml to control the behavior of the profile. So when you use the settings (settings -> profiles) to edit the profile behavior, it edits this file. Now with application groups menu removed from the profile settings menu, there is no way to edit those features in profiles.xml. This is a problem because the profiles.xml still behaves the same way and DOES control application groups. The default profiles.xml included in the CM11 distribution has these undesirable application group features overriding any custom setup I do in the application itself. Since there is no way to change the application group settings in the profiles.xml file in the settings menu you must edit the file manually using xml code. It looks easy enough to edit, but I found a work around.
Solution: The profiles included in CM11 are 'corrupt,' except for the "default" profile. Delete the all but the default profile and create new profiles. These new profiles can have the same names as the profiles you just deleted, but any new profile you create has 'uncorrupt' settings for the application groups. Now you can change the notifications as desired. As an alternative solution, you can just edit the profile.xml file. It is easy enough to reverse engineer, and if you can't figure out the code, you probably shouldn't touch it anyway.
I hope this helps someone.
Pearlmam said:
Solution: The profiles included in CM11 are 'corrupt,' except for the "default" profile. Delete the all but the default profile and create new profiles......
I hope this helps someone.
Click to expand...
Click to collapse
Definitely helped! Never would have thought that Profiles were connected to my Gmail app notification sounds. This has been bugging me for a few days now. Thanks for the solution!

Categories

Resources