Archivo de la etiqueta: Windows Phone 7.1

Desbloquer windows phone 7 para instalar app.xap desde cualquier fuente

Dispositivos LG : pasos para la activacion

1. Install the MFG app by dialing: ##634#
2. Open the MFG app. The password is: appmfg#*#
3. Go to Engineer Menu -> Other Settings -> Edit Registry
4. Set your ROOT PATH to “HKEY_LOCAL_MACHINE”
5. Set your input path to “\Comm\Security\LVMod”
6. Set your input key to “DeveloperUnlockState” and set to DWORD.
7. Leave input data box empty and tap “SET”.
8. The output should be 0.
9. Now enter “1” in the inputbox and tap “SET”.
10. The output should be 1.
11. Set your input path to “\Software\Microsoft\DeviceReg”
12. Set your input key to “PortalUrlProd” and set to DWORD.
13. Clear the input data box and hit “SET”.
14. Output result should be “0”.
15. Set your input key to “PortalUrlInt” and set to DWORD.
13. Clear the input data box and hit “SET”.
14. Output result should be “0”.
15. Set your input path to “\Software\Microsoft\DeviceReg\Install”
16. Set your input key to “MaxUnsignedApp” and set to DWORD.
17. Clear the input data box and hit “SET”.
18. The output should be 0.
19. Now enter “2147483647” in the inputbox and tap “SET”.
20. Output result should be “2147483647”.

ver mas: http://wp7roottools.com/index.php/guides/interop-unlock

Anuncios

Sql Server CE en Windows Phone

Quiero hablarles de Sql Server CE para trabajar con DB en Windows Phone en almacenamiento aislado. En Windows Phone Sql Server CE no tiene diseñador, ni herramientas visuales para trabajar con las BD, todo el trabajo se debe hacer con “Code First” o sea por código. Otra característica es que no se permite ejecutar instrucción T-SQL, todo se debe hacer usando Linq to Sql. Ahora veamos un ejemplo sencillo.

Primero generamos un proyecto de Windows Phone, seguidamente agregarmos la referencia a System.Data.Linq

image

Para trabajar con Sql Server CE tenemos que hacerlo por “Code First”. no olvidar usar

   1: using System.Data.Linq;
   2: using System.Data.Linq.Mapping;
   1: namespace WPSqlCE.Database
   2: {
   3:     [Table(Name="Usuario")]
   4:     public class Usuario
   5:     {
   6:         [Column(IsDbGenerated=true,IsPrimaryKey=true)]
   7:         public int UsuarioId { get; set; }
   8:  
   9:         [Column()]
  10:         public string Nombre { get; set; }
  11:  
  12:         [Column()]
  13:         public string Apellido { get; set; }
  14:  
  15:         [Column()]
  16:         public string Email { get; set; }
  17:  
  18:         [Column()]
  19:         public string Pais { get; set; }
  20:  
  21:     }
  22: }

Ahora creamos el DataContext

   1: namespace WPSqlCE.Database
   2: {
   3:     public class DBContext: DataContext
   4:     {
   5:         public DBContext(string connectionString): base (connectionString){}
   6:  
   7:         public Table<Usuario> Usuarios
   8:         {
   9:             get
  10:             {
  11:                 return this.GetTable<Usuario>();
  12:             }
  13:         }
  14:  
  15:     }
  16: }

Ahora ya en el formulario principal tenemos algo como lo siguiente.

   1: public MainPage()
   2:         {
   3:             InitializeComponent();
   4:  
   5:             using (DBContext context = new DBContext("isostore:/Database.sdf"))
   6:             {
   7:                 if (!context.DatabaseExists())
   8:                 {
   9:                     context.CreateDatabase();
  10:  
  11:                     Usuario usuario = new Usuario();
  12:                     usuario.Nombre = "Romny";
  13:                     usuario.Apellido = "Duarte";
  14:                     usuario.Email = "romnyduarte@hotmail.com";
  15:                     usuario.Pais = "Colombia";
  16:  
  17:                     context.Usuarios.InsertOnSubmit(usuario);
  18:                     context.SubmitChanges();
  19:                 }
  20:             }
  21:         }

Usamos un botón para cargar el dato que se genero predeterminadamente.

   1: private void btnCargar_Click(object sender, RoutedEventArgs e)
   2:        {
   3:            using (DBContext context = new DBContext("isostore:/Database.sdf"))
   4:            {
   5:                lsUsuarios.ItemsSource = context.Usuarios.ToList();
   6:            }
   7:        }

Ejecutamos la aplicación no sin antes en nuestro control donde vamos a mostrar los datos debemos decirle DisplayMemberPath=”Nombre”, para que muestre el dato y  no como clase.

image

 

Bueno este es un ejemplo sencillo de como trabajar con Sql Server CE en almacenamiento aislado con Windows Phone.

Angry Birds: Space SI vendrá para Windows Phone

Fue un día un poco raro hoy respecto a Angry Birds, algunos decian que no iba a salir, pero la verdad es que Angry Birds Space SI va a ser lanzado para Windows Phone.

Angry Birds Space para Windows Phone

La razon por la que se generara ésta confusión respecto al Angry Birds Space, es que en un principio, en un perfil de Twitter (¿oficial?) de Rovio, había confirmado mediante un link a la web Bloomberg, que Angry Birds Space no iba a llegar a Windows Phone, las razones que se comentaba, era que Windows Phone aun no tiene suficiente usuarios, como para que el costo de desarrollo del juego para ésta plataforma sea rentable.

Pero luego, más tarde, en el mismo perfil de Rovio, se compartió otro mensaje que iba a Reuters, que confirmaba la llegad de Angry Birds Space para Windows Phone, dicho por el mismo CEO.

“We are working towards getting Angry Birds Space to WP7″, Mikael Hed, CEO de Rovio

Así que está confirmado, el Angry Birds Space SI llegará para Windows Phone, solo tendremos que esperar un poco más para ello.

[WP7] Usando los servicios de Live

Preparando una idea para un juego que tengo entre manos se me ha ocurrido que podría intentar conectar con los servicios que ofrece Live para ofrecer una experiencia mas social en el juego a parte de lo que es el propio juego.

El SDK de Live nos permite hacer uso de Skydrive, los contactos y el calendario de Hotmail, podemos hacer uso del chat de Messenger y por supuesto autenticarnos en Live y acceder a algunos datos de nuestro perfil.

Bueno pues es esto último lo que voy a mostrar y posteriormente iré mostrando como hacer uso de los demás servicios. Para empezar vamos a descargar e instalar el SDK de Live a través de este link .

cap1

Una vez instalado abrimos Visual Studio y creamos un proyecto de Silverlight para Windows Phone y lo primero que tenemos que hacer es agregar las referencias a nuestro proyecto deMicrosoft.Live y Microsoft.Live.Controls y añadir al ToolBox el componente que nos autentica en el servicio.

cap2

cap3

Antes de seguir construyendo el programa necesitamos un identificador para que la aplicación pueda acceder al servicio de Live, para eso vamos a ir al gestor de aplicaciones deLive Connect, donde tenemos que registrar el nombre de la aplicación, el idioma y si la aplicación que accede es movil o no. A cambio de esto obtenemos un identificador de cliente y un codigo secreto de cliente.

cap5

cap6

Ahora ya podemos añadir el componente que hemos agregado a la caja de herramientas, este componente simplifica la conexión con el servicio Connect de Live:

cap4

A continuación rellenamos el Client ID que hemos obtenido de registrar la aplicación en Live:

cap8

Podemos personalizar más cosas, una de ellas, la propiedad Scopes, esta propiedad nos permite definir el nivel de los permisos de acceso a nuestros datos que va a tener la aplicación.

Existen varios tipos de permisos según el servicio de Live que queramos utilizar pero como de momento estamos probando la autenticación y el acceso a los datos de nuestro perfil solamente tenemos que fijarnos en tres que son comunes a todos los servicios:

  • wl.basic:  este permiso nos da acceso a los datos del usuario y también a su lista de contactos.
  • wl.offline_access: como el anterior nos da acceso a la lectura y actualización de los datos del usuario. Si no lo usamos tenemos que iniciar sesión.
  • wl.signin: inicio de sesión único, los usuarios quedan conectados para todos los servicios.

El que yo he utilizado es el básico como podéis ver en la imagen de arriba, es mas que suficiente para poder acceder a los datos del usuario.

Bueno pues ya solo queda construir la interfaz, es simplemente el botón de logueo y un par de textblocks para mostrar que estas conectando y otro para enseñar la info del usuario, quedaría de la siguiente manera:

cap9

El código en XAML sería el siguiente:

<phone:PhoneApplicationPage
x:Class="DemoLive1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True" xmlns:my="clr-namespace:Microsoft.Live.Controls;assembly=Microsoft.Live.Controls">&nbsp;

<!–LayoutRoot is the root grid where all page content is placed–>
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>

<!–TitlePanel contains the name of the application and page title–>
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="Conectando con los servicios de Live" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="DemoLive" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>

<!–ContentPanel – place additional content here–>
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<my:SignInButton Content="Button" Height="113" HorizontalAlignment="Left" Margin="102,29,0,0" Name="signInButton1" VerticalAlignment="Top" Width="264" TextType="SignIn" ClientId="000000004C07BBAD" Scopes="wl.basic" SessionChanged="signInButton1_SessionChanged" />
<TextBlock Height="30" Name="txtStatus" Text="" Width="397" TextAlignment="Center" />
<TextBlock Height="Auto" HorizontalAlignment="Left" Name="txtInfo" Text="TextBlock" VerticalAlignment="Top" Width="438" TextWrapping="Wrap" Visibility="Collapsed" />
</StackPanel>
</Grid>
</phone:PhoneApplicationPage>

En la parte de código, en la clase MainPage.xaml.cs vamos a utilizar dos objetos LiveConnectClient y LiveConnectSession, el primero para obtener los datos del usuario y el segundo para determinar si hemos conectado correctamente con el servicio de Live.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Live;
using Microsoft.Live.Controls;&nbsp;

namespace DemoLive1
{
public partial class MainPage : PhoneApplicationPage
{

private LiveConnectClient client;
private LiveConnectSession session;

// Constructor
public MainPage()
{
InitializeComponent();
}

private void signInButton1_SessionChanged(object sender, LiveConnectSessionChangedEventArgs e)
{
if (e.Status == LiveConnectSessionStatus.Connected)
{
session = e.Session;
client = new LiveConnectClient(session);
txtStatus.Text = "Obteniendo información…";
client.GetCompleted += new EventHandler<LiveOperationCompletedEventArgs>(client_GetCompleted);
client.GetAsync("me");
}
else
{
txtStatus.Text = "No estás conectado!!";
client = null;
}
}

void client_GetCompleted(object sender, LiveOperationCompletedEventArgs e)
{
ocultarControles();
txtInfo.Text = e.RawResult.ToString();
txtInfo.Visibility = System.Windows.Visibility.Visible;
}

private void ocultarControles()
{
txtStatus.Visibility = System.Windows.Visibility.Collapsed;
signInButton1.Visibility = System.Windows.Visibility.Collapsed;
}
}
}

En el evento Session_Changed comprobamos si esta conectado o no. En el caso de estar conectado mostramos un mensaje indicando que es esta obteniendo la información, una vez esté descargada ocultamos los botones de conexión y el mensaje anterior para mostrar solamente los datos del usuario.

 cap91     cap92

cap93     cap94

Como podéis ver es bastante sencillo conectarse a Live y obtener los datos del usuario.

Espero que os sirva, os dejo el código de ejemplo aquí para que podáis ejecutarlo (debéis rellenar el ClientID). En el próximo post veremos ya como hacer uso de alguno de los otros servicios que nos ofrece Live.

[Tips and Tricks] Windows Phone 8. Estado de la batería.

Javier Suárez | Blog

WPBatteryIntroducción

Entre la gran cantidad de APIs que teníamos disponibles en Windows Phone 7 había ciertos aspectos sobre los que no teníamos control programáticamente. Uno de dichos aspectos era la batería.

Con el nuevo SDK de Windows Phone 8 contamos con una API pensada para poder obtener el estado de la batería, porcentaje restante y tiempo restante. En la entrada actual vamos a trabajar con esta API y sus posibilidades.

Controlando el estado de la batería

Dentro del namespace Windows.Phone.Devices.Power contamos con una clase llamada Battery que implementa la interfaz IBattery. Esta clase cuenta con un método GetDefault() que nos devolverá el objeto batería por defecto. Una vez obtenido el objeto batería por defecto, podemos acceder a sus propiedades de forma simple:

La propiedad remainingChargePercent nos devolverá el porcentaje restante hasta el fin de la batería.

La propiedad remainingDischargeTime nos devolverá el tiempo de carga restante en formato…

Ver la entrada original 43 palabras más

Backup your Windows Phone Isolated Storage data to SkyDrive using Live Connect API

Niko Vrdoljak's Blog

As a Windows Phone developer you know that you can store your application local data to Isolated Storage. Isolated Storage restricts all your I/O operations so other applications cannot access or corrupt your data, which provides very efficient security of app’s and user’s data. You can store WP7 local data to IsolatedStorageSettings, database or folders and files.

You also know that you have to backup your data in case of data loss or something else. Classic backup scenario includes simple data upload to your web application or cloud service. But if you tried to implement solution that includes upload to SkyDrive, DropBox or any other free cloud hosting service, you know that situation is not so simple, primarily because there are not any official API providers for Windows Phone platform. Off course, there are some community libraries that can help you, but in most cases they are…

Ver la entrada original 1.698 palabras más