archiveren

Tagarchief: live

I’ve been programming again!
This time on soms apps called “PrefabSMS” and “WOL”.
More info about the app later, but now I just want to share some code snippets about sockets en live tiles!

UDP sockets

Sockets is something introduced since WP7.5’s update mango.
Something that should have been there since the beginngin… But hey, it’s here now, so enjoy it from now on!
Anyway, a first thing to do is include the namespace.

using System.Net.Sockets;

After that we can declare some new things 🙂

Socket _socket = null;
static ManualResetEvent _clientDone = new ManualResetEvent(false);
const int TIMEOUT_MILLISECONDS = 5000;
const int MAX_BUFFER_SIZE = 2048;

Which meaning is all pretty obvious I think…

After this the socket is initialized with

_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

The 3rd thing we need is a send() function.
This should be something as follows:

public string Send(byte[] payload))
{
     string response = "Operation Timeout";

     if (_socket != null)
     {
          SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();
          socketEventArg.RemoteEndPoint = new IPEndPoint(IPAddress.Broadcast, 11000);
          socketEventArg.Completed += new EventHandler(delegate(object s, SocketAsyncEventArgs e)
          {
          response = e.SocketError.ToString();
          _clientDone.Set();
          });
          socketEventArg.SetBuffer(payload, 0, payload.Length);
          _clientDone.Reset();
          _socket.SendToAsync(socketEventArg);
          _clientDone.WaitOne(TIMEOUT_MILLISECONDS);
     }
     else
     {
          response = "Socket is not initialized";
     }

     return response;
}

So, after initialisation, you can call send to send your byte array into the wild!

You can change the IPEndPoint in the send function into IPEndPoint(“192.168.1.100”, 80) or something else, just an ip address and a port for the packet! 🙂

Live tiles

I’ve also been playing with the live tiles. In mango you can setup live tiles to enter a deep state of your application. With this you can open a specific page with specific data in your application instead of just “regularly” opening your app…

Add following reference.

using Microsoft.Phone.Shell;

Creation

StandardTileData NewTileData = new StandardTileData
{
     BackgroundImage = new Uri("ftgxmessage.png", UriKind.Relative),
     Title = temp.sendBody,
     BackTitle = temp.sendTo,
     BackContent = temp.sendBody,
     //BackBackgroundImage = new Uri("Blue.jpg", UriKind.Relative) 
};
ShellTile.Create(new Uri("/MainPage.xaml?action="+listBox1.SelectedIndex, UriKind.Relative), NewTileData);

This piece of code instantiates a standard tile with some info. Notice: you have a front and a back of the live tile (it flips around on the home screen 🙂 )

And the create() puts it on the homescreen.

An action can be included in the create function: here we call mainpage with a specified action to execute, this is done by a QueryString – see further.
Adjust at your own needs 🙂

At the page data can be passed from the tile into the app (this is done by a so called QueryString). This can be accessed in the Loaded function for the program with following code:

int id = Convert.ToInt32(NavigationContext.QueryString["action"]);

Et voila, you have your action variable at hand! 🙂

Deletion

When you want to delete a tile, you first have to find your tile 😛

If we put the tile from above on the homescreen, it can be identified with the action variable in the QueryString. So we use this to find our tile and identify it. And to delete it 🙂

string tempstring = "action=" + listBox1.SelectedIndex;
ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(tempstring));

That’s all for today 🙂

Advertenties

Microsoft is currently testing out all kind of new services…
All of them are in public, or non-public, beta at the moment.

Some GREAT examples are the following

Perhaps even more, and i’m forgetting them here…

But hopefully, all of those individual services will become one online system available for all users 8)
That would be nice!
And it would be double as nice, if all stays free of charge :mrgreen:

Only future will tell…
(Or Microsoft should send me a mail with an answer for the above 😉 )

So please Microsoft, combine your beautifull world! 😀

Mjah, dat Microsoft een bigbrother is wiste we al langer…

Maar nu blokkeert die ookal dingen, de vetzak 👿

chatgesprekIk wil een link doorsture naar een klasgenoot. (We waren lekker aan het bashen op wikipedia en er mee aant lache waren om die servers te gaan opblazen. Dan moeten we de geografische locatie van da ding toe wete zeker :p )

En volgens een aantal bronnen (deze en deze) blokkeert onzen msn dus leuk url’s met queries in (index.php?blablabla) en volledige tld’s zoals .info. Allez man…
Ze zeggen dan omdat het tegen virussen en wormen… Sjeezes… 🙄

Nu weet ik niet ofdat dit in het protocol of in de client zit… Wutske? Can you answer this question? 🙂

*…Ik heb weeral een negatiever beeld van microsoft…*