Przejdź do głównej zawartości

Toggle Vibrate & Ring

Toggle VibraOrRing
cab installation for WM 6.0:
XDA Thread...

c# how to toggle Vibra and Ring On ? simple... use this code :)

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace toggleVibrateSound
{
class Program
{
private enum SoundEvent
{
All = 0,
RingLine1,
RingLine2,
KnownCallerLine1,
RoamingLine1,
RingVoip
}

private enum SoundType
{
On = 0,
File = 1,
Vibrate = 2,
None = 3
}

private struct SNDFILEINFO
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szPathNameNative;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szDisplayNameNative;

public SoundType SstType;
}


[DllImport("aygshell.dll", SetLastError = true)]
private static extern uint SndSetSound(SoundEvent seSoundEvent, ref SNDFILEINFO pSoundFileInfo, bool fSuppressUI);

[DllImport("aygshell.dll", SetLastError = true)]
private static extern uint SndGetSound(SoundEvent seSoundEvent, ref SNDFILEINFO pSoundFileInfo);


public static void SetRingerOn()
{
SNDFILEINFO sfi = new SNDFILEINFO();
sfi.SstType = SoundType.On;
uint ret = SndSetSound(SoundEvent.All, ref sfi, true);
}

public static void GetCurrentSoundType()
{
SNDFILEINFO sfi = new SNDFILEINFO();
uint ret = SndGetSound(SoundEvent.All, ref sfi);
SoundType aa = sfi.SstType;
if (aa == 0) Vibra(); else SetRingerOn();
}

public static void Vibra()
{
SNDFILEINFO sfi = new SNDFILEINFO();
sfi.SstType = SoundType.Vibrate;
uint ret = SndSetSound(SoundEvent.All, ref sfi, true);
}
unsafe static void Main(string[] args)
{
//Vibra(); // set vibra mode on
//SetRingerOn(); // set ringer mode on
GetCurrentSoundType(); // in this case we toggle Vibra and Ring...

}
}
}

cheers... :)

Komentarze

Popularne posty z tego bloga

Angular2 + Moment.js library with Visual Studio 2017 .Net Core 2.0

Hey there! Recently I was facing problem with adding MomentJs library to Angular2 in .net core 2.0 project.  I'm using Visual Studio 2017 15.3.3.  ( https://www.visualstudio.com/pl/thank-you-downloading-visual-studio/?sku=Community&rel=15 ) Create new test project 2. Use Web -> Angular template  3. Compile and run in chrome to check that everything is ok.  4. Edit package.json. At the end of "dependencies" add new line:  "moment": "2.18.1" 5. Edit tsconfig.json file, At "compilerOptions" add: "allowSyntheticDefaultImports": true, 6. Edit home.component.ts and add: import * as moment from 'moment'; and the constructor.     constructor() {         try {             console.log("test");             let now = moment().format('LLLL');             console.log(now);     ...

X Mapper 1.0 - Tool for mapping X Panel Button

I've made an application that allows simple mapping / binding exe files to X Panel Button (via editing registry file, SOFTWARE\\SonyEricsson\\PanelManager) I think that using my X Mapper is faster and easier then manual editing registry... Instruction: 1. if it's first time do Backup of registry entry and panelmanager.lnk in StartUp folder! a) (go to Menu->Backup->Save) b) (Menu->panelmanager.lnk->beckup before delete) 2. then we have to delete panelmanager.lnk from our StartUp folder (Menu->panelmanager.lnk->try to delete) 3. Choose one from available Events: - Run Program (allows to run program) - Run Program with Argument (allows to run any other application but with additional argument (uses my RWA app, see my signature) - Toggle WiFi (changes state of Wifi Adapter, uses external exe) - Toggle BT (changes state of BT Adapter, uses external exe) - Lock (devicelock.exe is executed) 4. if Run Program / Run Program with Argument is selected then press: "C...