terça-feira, 22 de novembro de 2011

Cancelar vivo 3G parte 2

Continuo inconformado coma falta de respeito da operadora vivo.

entrei em contato com eles mais duas vezes, e os mesmos inforaram que o sistema estava fora do ar, depois de passar por uns 3 a 4 atendentes em cada ligação, e demorar mais de 50 minutos também.

entrei em contato com o procon e com a anatel e fiz minha reclamação,

para ajudar, olha o que a anatel escreveu:
---------------------------------------
Em atenção ao seu e-mail, informamos que a operadora deve permitir o cancelamento do serviço pelos mesmos meios que possibilita a contratação.



De acordo com o artigo 18 do Decreto 6.523/08, que fixou normas gerais sobre o Serviço de Atendimento ao Consumidor:



"O SAC receberá e processará imediatamente o pedido de cancelamento de serviço feito pelo consumidor.



§ 1º  O pedido de cancelamento será permitido e assegurado ao consumidor por todos os meios disponíveis para a contratação do serviço.



§ 2º  Os efeitos do cancelamento serão imediatos à solicitação do consumidor, ainda que o seu processamento técnico necessite de prazo, e independe de seu adimplemento contratual.



§ 3º  O comprovante do pedido de cancelamento será expedido por correspondência ou por meio eletrônico, a critério do consumidor".



Para melhor análise da questão apresentada e eventuais providências, sugerimos que apresente cópia simples da documentação envolvida (os comprovantes que tiver sobre o caso) em um dos nossos canais de atendimento. Os endereços poderão ser verificados em nosso site, no link "Formas de Atendimento".


Os postos de atendimento pessoal (Poupatempo Sé, Santo Amaro e Itaquera) trabalham com sistema de agendamento de horário e distribuição de senhas. Se optar por um desses canais, antes de dirigir-se ao local é conveniente contatar o Poupatempo, através do telefone 0800 772 3633, a fim de informar-se sobre as condições para distribuição de senhas e agendamento de horário.



Se não residir em São Paulo recorra, preferencialmente, ao órgão de defesa do consumidor de sua cidade. Se for um município do Estado de São Paulo, é provável que o Procon local seja conveniado a esta Fundação. Para verificar o endereço acesse em nosso site o link "Procons Municipais".



Atenciosamente,
 ---------------------

Ou seja a vivo deveria cancelar o serviço pelos mesmos meios que contratei, ou seja na loja!
e lá eles falam que é só pelo telefone, e pelo telefone eles demoram, ou não cancelam.

peguei esse artigo no site http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6523.htm

e é bem interessante,
vou mais tarde na loja da vivo, tentar resolver isso!
espero que ajude quem precisar!

att

Vitor Yudi Hansen

segunda-feira, 21 de novembro de 2011

Cancelar Internet 3G modem vivo

Quero cancelar meu 3g da vivo!
mas não cancelam de jeito nenhum!

na opção cancelar existe um loop infinito que nunca ninguem vai te atender pelo amor....

http://www.reclameaqui.com.br/1990321/vivo-celular/cancelamento-3g/

a minha única esperança no momento é que o reclame aqui me ajude!!
já tive alguns problemas com outras empresas, de entrega, ou serviço, e eles ajudaram e muito!

segue link da reclamação!

http://www.reclameaqui.com.br/1990321/vivo-celular/cancelamento-3g/

só queria colocar meu descontentamento com a VIVO.

ela funcionou bem, o modem, sem reclamações!
mas o serviço ta ruim pra caramba!
#tiraOloop

Vitor Yudi Hansen

quarta-feira, 9 de novembro de 2011

Data e Hora no FLEX

//Nesse Exemplo estou usando 2 campos de textos instanciandos
 //texto1 e texto2
 //Para aprendizado, aconselho a criação do TextField via actionscript
 var tempo:Timer = new Timer(1000);
 tempo.start();
 tempo.addEventListener(TimerEvent.TIMER,mostra);
 function mostra(evento:TimerEvent):void {

var valores:Date = new Date();
 var ano:String=String(valores.getFullYear());
 var mes:String=String(valores.getMonth()+1);
 var dia:String=String(valores.getDate());
 var data_formatada:String=dia + “/” + mes + “/” + ano;
 texto1.text=data_formatada;

var hora:String=String(valores.getHours());
 var minuto:String=String(valores.getMinutes());
 var segundo:String=String(valores.getSeconds());

//Condições para acrescentar ’0′ (zero)
 if(hora.length==1){
 hora = “0″ + hora;
 }

if(minuto.length==1){
 minuto = “0″ + minuto;
 }

if(segundo.length==1){
 segundo = “0″ + segundo;
 }

var horario:String=hora + “:” + minuto + “:” + segundo;
 texto2.text=horario;
 }


Vitor Yudi Hansen

segunda-feira, 7 de novembro de 2011

Mudar icone do mouse Flex 3


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle"
    horizontalAlign="center" backgroundGradientColors="[0x000000,0x323232]" viewSourceURL="srcview/index.html">
    <mx:Script>
        <![CDATA[
            import mx.controls.Button;
            import mx.managers.CursorManager;
            import flash.events.*;
            
            private var cursorID:Number = 0;
            // Embed the cursor symbol.
            [(source="aircursor.png")]
            private var waitCursorSymbol:Class;           

            private function setCursor(cursorType:String):void 
            {
                if (cursorType == "normal") {
                    CursorManager.removeAllCursors();
                    CursorManager.removeBusyCursor();
                } else if (cursorType == "busy") {
                    CursorManager.removeAllCursors();
                    CursorManager.setBusyCursor();
                } else if (cursorType == "custom") {
                    CursorManager.removeAllCursors();                    
                    cursorID = CursorManager.setCursor(waitCursorSymbol);
                }
            }
        ]]>
    </mx:Script>
    
    <mx:Button label="Normal Cursor" color="white" textRollOverColor="white" click="setCursor('normal')"/>
    <mx:Button label="Default Busy Cursor" color="white" textRollOverColor="white" click="setCursor('busy')"/>
    <mx:Button label="Custom Busy Cursor" color="white" textRollOverColor="white" click="setCursor('custom')"/>

</mx:Application>



Vitor Yudi Hansen

sexta-feira, 4 de novembro de 2011

exemplo de filtros Flex 4


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               skinClass="TDFGradientBackgroundSkin" 
               viewSourceURL="srcview/index.html"
               creationComplete="init()">
    
    <fx:Script>
        <![CDATA[
            
            private var time:Timer;
            private var count:int = 0;
            
            private function init():void{
                time = new Timer(1000,0);
                time.addEventListener(TimerEvent.TIMER,timeHandler);
                time.start();
                
            }
            
            private function timeHandler(ev:TimerEvent):void{
                count ++;
                dynamicText.text = String(count);
            }
            
            private function filterHandler(ev:MouseEvent):void{
                var filterArr:Array = [];
                
                blurBox.selected ? filterArr.push(blur): null;
                glowBox.selected ? filterArr.push(glow): null;
                shadowBox.selected? filterArr.push(dropShadow): null;
                bevelBox.selected ? filterArr.push(bevel): null;
                
                textSample.filters = filterArr;
                dynamicText.filters = filterArr;
            }
        ]]>
    </fx:Script>
    
    <s:layout>
        <s:HorizontalLayout verticalAlign="middle" horizontalAlign="center" />
    </s:layout>
    
    <fx:Declarations>
        <!--filters-->
        <s:GlowFilter id="glow" blurX="12" blurY="12" color="#88AEF7" quality="2" strength="1"/>
        <s:BlurFilter id="blur" blurX="4" blurY="4" quality="2" />
        <s:DropShadowFilter id="dropShadow" alpha="0.35" blurX="6" blurY="6" distance="6" color="#000000" angle="90" />
        <s:BevelFilter id="bevel" angle="45" blurX="0.5" blurY="0.5" distance="4" strength="0.7" highlightAlpha="0.7" shadowAlpha="0.7"  />
    </fx:Declarations>
    
    <s:Panel title="Filters Samples"
             width="600" height="100%"
             color="0x000000" 
             borderAlpha="0.15">
        
        <s:layout>
            <s:VerticalLayout horizontalAlign="center" 
                              paddingLeft="10" paddingRight="10" 
                              paddingTop="10" paddingBottom="10"/>
        </s:layout>
        
        <s:Label id="textSample" text="SAMPLE TEXT" color="0x000000" 
                 fontWeight="bold" fontSize="40" filters="{[]}" />
        
        <s:HGroup width="100%" color="#323232" horizontalAlign="center">
            <s:CheckBox id="blurBox" label="Blur" click="filterHandler(event)" />
            <s:CheckBox id="glowBox" label="Glow" click="filterHandler(event)" />
            <s:CheckBox id="shadowBox" label="Drop Shadow" click="filterHandler(event)" />
            <s:CheckBox id="bevelBox" label="Bevel" selected="true" click="filterHandler(event)" />
        </s:HGroup>
        
        <s:Label id="dynamicText" text="0" color="#323232" fontSize="18" filters="{[]}" />
        
    </s:Panel>
    
</s:Application>



Vitor Yudi Hansen

Drag and Drop Flex 4 =D


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               skinClass="TDFGradientBackgroundSkin" 
               viewSourceURL="srcview/index.html">
    
    <s:layout>
        <s:HorizontalLayout verticalAlign="middle" horizontalAlign="center" />
    </s:layout>
    
    <fx:Declarations>
        <s:ArrayList id="arr1">
            <fx:String>Orange</fx:String>
            <fx:String>Apple</fx:String>
            <fx:String>Pear</fx:String>
        </s:ArrayList>
        
        <s:ArrayList id="arr2">
            <fx:String>Banana</fx:String>
        </s:ArrayList>
    </fx:Declarations>
    
    <s:Panel title="Drag and Drop Samples" 
             width="600" height="100%"
             color="0x000000" 
             borderAlpha="0.15">
        
        <s:layout>
            <s:HorizontalLayout horizontalAlign="center" 
                              paddingLeft="10" paddingRight="10" 
                              paddingTop="10" paddingBottom="10"/>
        </s:layout>
        
        <s:List allowMultipleSelection="true" dropEnabled="true" dragEnabled="true" dragMoveEnabled="true" 
                dataProvider="{arr1}"/>
        
        <s:Label text="Drag Items between lists" color="0x000000"/>
        
        <s:List allowMultipleSelection="true" dropEnabled="true" dragEnabled="true" dragMoveEnabled="true" 
                dataProvider="{arr2}"/>
    </s:Panel>
    
</s:Application>



Vitor Yudi Hansen

Sqlite FLex Builder para IOS e Android

Exemplo simples para utilizar banco de dados.
=D


<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark" title="Database Access" viewActivate="view1_viewActivateHandler(event)">
    
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import spark.events.ViewNavigatorEvent;     
      
            protected var sqlConnection:SQLConnection;
            
            protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void
            {
                sqlConnection = new SQLConnection();
                sqlConnection.open(File.applicationStorageDirectory.resolvePath("giberish.db"));
                var stmt:SQLStatement = new SQLStatement();
                stmt.sqlConnection = sqlConnection;
                stmt.text = "CREATE TABLE IF NOT EXISTS giberish (label TEXT)";
                stmt.execute();
                getAllGiberish();
            }
            
            protected function getAllGiberish():void
            {
                var stmt:SQLStatement = new SQLStatement();
                stmt.sqlConnection = sqlConnection;
                stmt.text = "SELECT label FROM giberish";
                stmt.execute();
                l.dataProvider = new ArrayCollection(stmt.getResult().data);
            }
            
            protected function onAdd():void
            {
                var stmt:SQLStatement = new SQLStatement();
                stmt.sqlConnection = sqlConnection;
                stmt.text = "INSERT into giberish values(:giberish)";
                stmt.parameters[":giberish"] = g.text;
                stmt.execute();
                getAllGiberish();
                g.text = "";
            }
        ]]>
        
    </fx:Script>
    
    <s:layout>
        <s:VerticalLayout paddingTop="5" paddingBottom="5" paddingLeft="5" paddingRight="5" gap="5" 
                          horizontalAlign="left" verticalAlign="top"/>
    </s:layout>
    
    <s:Form width="100%">
        <s:FormItem label="Enter text" skinClass="spark.skins.spark.StackedFormItemSkin">
            <s:TextInput id="g"/>
        </s:FormItem>
        <s:Button label="Save text" enabled="{g.text.length != 0}" click="onAdd()"/>
    </s:Form>
    
    <s:List id="l" width="100%" height="100%"/>
    
</s:View>



Vitor Yudi Hansen

Transição de Slide View no FLash BUilder 4.5 para Android e IOS

segue modelo
=D


<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               title="Slide Transition">
    
    <fx:Script>
        <![CDATA[
            import spark.transitions.SlideViewTransition;
            import spark.transitions.SlideViewTransitionMode;
            import spark.transitions.ViewTransitionDirection;
            
            public var slideTrans:SlideViewTransition = new SlideViewTransition();
            
            protected function onSlide():void 
            {
                validateDirection();
                if (txtDuration.text!=null && txtDuration.text.length>0)
                    slideTrans.duration = parseFloat(txtDuration.text)*1000;
                slideTrans.mode = rgMode.selectedValue as String;
                navigator.popToFirstView(slideTrans);
            }
            
            protected function add_clickHandler(event:MouseEvent):void
            {
                var n:int = parseInt(txtDuration.text);
                txtDuration.text = new String(n+1);
            }
            protected function subtract_clickHandler(event:MouseEvent):void
            {
                
                var n:int = parseInt(txtDuration.text);
                txtDuration.text = new String(n-1);
            }
            
            protected function validateDirection():void
            {
                if (txtDirection.text != ViewTransitionDirection.LEFT && txtDirection.text != ViewTransitionDirection.RIGHT && 
                    txtDirection.text != ViewTransitionDirection.UP && txtDirection.text != ViewTransitionDirection.DOWN)
                    txtDirection.text = ViewTransitionDirection.RIGHT;
                else slideTrans.direction = txtDirection.text;
            } 
        ]]>
    </fx:Script>
    
    <fx:Declarations>
        <s:RadioButtonGroup id="rgMode"/>
    </fx:Declarations>
    
    <s:navigationContent>
        <s:Button label="Home" height="100" click="navigator.popToFirstView(slideTrans)"/>
    </s:navigationContent>
    <s:actionContent>
        <s:Button id="btn" height="100" label="Back" click="navigator.popToFirstView(slideTrans)"/>
    </s:actionContent>
    
    <s:VGroup width="100%" height="100%" gap="65" horizontalAlign="center" verticalAlign="middle">
        <s:HGroup verticalAlign="middle" top="50">
            <s:Label text="Duration (seconds)"/>
            <s:HGroup>
                <s:Button id="addBtn" label="+" click="add_clickHandler(event)"/>
                <s:TextInput id="txtDuration" width="50" height="65" restrict=".0-9" text="1"
                             textAlign="center"/>
                
                <s:Button id="subtractBtn" label="-" click="subtract_clickHandler(event)"/>
            </s:HGroup>  
        </s:HGroup>
        
        <s:HGroup verticalAlign="middle">
            <s:Label text="Direction (right, left, up, down)"/>
            <s:TextInput id="txtDirection" text="right" width="100"/>
        </s:HGroup>  
        
        <s:VGroup>
            <s:Label text="Slide Mode"/>
            <s:HGroup>
                <s:RadioButton id="coverMode" label="{SlideViewTransitionMode.COVER}" groupName="rgMode" selected="true"/>
                <s:RadioButton id="pushMode" label="{SlideViewTransitionMode.PUSH}" groupName="rgMode"/>
                <s:RadioButton id="uncoverMode" label="{SlideViewTransitionMode.UNCOVER}" groupName="rgMode"/>
            </s:HGroup>
        </s:VGroup>
        
        <s:HGroup>
            <s:Button label="Start" click="onSlide()"/>
        </s:HGroup>
    </s:VGroup>  
    
</s:View>


Vitor Yudi Hansen

Apple lança iPhone 4S em 22 países

O novo iPhone 4S chegou na madrugada desta sexta-feira (28) em mais 22 países, como havia anunciado a Apple no início de outubro. Até o final do ano, outros 70 países receberão o smartphone. A companhia não confirmou oficialmente, mas o Brasil deve estar nesta lista.

Em Cingapura, consumidores fizeram fila logo no início da manhã. Em países da Europa, onde as lojas abriram as portas para o lançamento à meia-noite, clientes aguardavam pacientes para adquirir o aparelho. Na Bélgica, uma promoção da operadora Telenet deu iPhones 4S para as 20 primeiras pessoas que chegassem na fila vestidas totalmente de amarelo.

O iPhone 4S foi lançado nesta sexta-feira (28) nos seguintes países: Áustria, Bélgica, República Checa, Dinamarca, Estônia, Finlândia, Hungria, Irlanda, Itália, Letônia, Liechtenstein, Lituânia, Luxemburgo, México, Holanda, Noruega, Cingapura, Eslováquia, Eslovênia, Espanha, Suécia e Suíça.

O novo presidente da Apple, Tim Cook, apresentou o smartphone no início de outubro. Após 15 meses, o sucessor do iPhone 4 chegou com o mesmo formato da versão anterior, mas com processador mais veloz de dois núcleos, câmera atualizada com 8 MP e um sistema inteligente de interação via voz, batizado de “Siri”.

Em 14 de outubro, o iPhone 4S chegou para consumidores de oito países: Estados Unidos, Canadá, Austrália, Reino Unido, França, Alemanha e Japão. Durante o período de pré-venda, o aparelho atingiu 1 milhão de pedidos em um único dia, ultrapassando a versão anterior do smartphone, que alcançou 600 mil encomendas em 24 horas.
fonte : www.globo.com/tecnologia

Vitor Yudi Hansen

quinta-feira, 3 de novembro de 2011

Apple admite falha na bateria do iPhone 4S

São Paulo - A Apple reconheceu um recente problema nos celulares iPhone 4S. Segundo os consumidores, a bateria dos aparelhos têm durado um tempo menor do que o de praxe para um smartphone.
"Um pequeno número de pessoas têm reportado que a vida da bateria do iPhone 4S, que roda o iOS 5, a nova versão do sistema operacional, está durando menos do que o esperado", disse a companhia em um comunicado enviado ao AllThingsD, o site de tecnologia do jornal Wall Street Journal.

A empresa, que lançou o iPhone 4S há um mês, afirmou ter encontrado alguns bugs que estão afetando o desempenho da bateria.
"Uma atualização de software, que será lançada em poucas semanas, resolverá o problema", ressaltou a Apple em seu comunicado.
Questionada sobre o problema, a Apple evitou fazer qualquer comentário além do divulgado através do documento. A companhia também não sugeriu qualquer paliativo àqueles que estão sofrendo atualmente com a bateria do celular.
Para não correr o risco de ficar sem telefone ao longo do dia, alguns usuários disseram estar desativando todas as notificações e o recurso que ajusta automaticamente o fuso horário para evitar o consumo de bateria de seus iPhones 4S.

fonte:
http://info.abril.com.br/noticias/tecnologia-pessoal/apple-admite-falha-na-bateria-do-iphone-4s-03112011-21.shl



Vitor Yudi Hansen

terça-feira, 1 de novembro de 2011

Android – Video/Music player exemplo (do disco ou de uma url)


segue classe para visualizar video no andoir :

package org.apache.android;

import android.app.Activity;
import android.graphics.PixelFormat;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListener;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.webkit.URLUtil;
import android.widget.EditText;
import android.widget.ImageButton;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class VideoPlayer extends Activity implements OnErrorListener,
        OnBufferingUpdateListener, OnCompletionListener,
        MediaPlayer.OnPreparedListener, SurfaceHolder.Callback {
    private static final String TAG = "VideoPlayer";

    private MediaPlayer mp;
    private SurfaceView mPreview;
    private EditText mPath;
    private SurfaceHolder holder;
    private ImageButton mPlay;
    private ImageButton mPause;
    private ImageButton mReset;
    private ImageButton mStop;
    private String current;

    /**
     * Called when the activity is first created.
     */
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        setContentView(R.layout.main);

        // Set up the play/pause/reset/stop buttons
        mPreview = (SurfaceView) findViewById(R.id.surface);
        mPath = (EditText) findViewById(R.id.path);
        mPlay = (ImageButton) findViewById(R.id.play);
        mPause = (ImageButton) findViewById(R.id.pause);
        mReset = (ImageButton) findViewById(R.id.reset);
        mStop = (ImageButton) findViewById(R.id.stop);

        mPlay.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                playVideo();
            }
        });
        mPause.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                if (mp != null) {
                    mp.pause();
                }
            }
        });
        mReset.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                if (mp != null) {
                    mp.seekTo(0);
                }
            }
        });
        mStop.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                if (mp != null) {
                    mp.stop();
                    mp.release();
                }
            }
        });

        // Set the transparency
        getWindow().setFormat(PixelFormat.TRANSPARENT);

        // Set a size for the video screen
        holder = mPreview.getHolder();
        holder.setCallback(this);
        holder.setFixedSize(400, 300);
    }

    private void playVideo() {
        try {
            final String path = mPath.getText().toString();
            Log.v(TAG, "path: " + path);

            // If the path has not changed, just start the media player
            if (path.equals(current) && mp != null) {
                mp.start();
                return;
            }
            current = path;

            // Create a new media player and set the listeners
            mp = new MediaPlayer();
            mp.setOnErrorListener(this);
            mp.setOnBufferingUpdateListener(this);
            mp.setOnCompletionListener(this);
            mp.setOnPreparedListener(this);
            mp.setAudioStreamType(2);

            // Set the surface for the video output
            mp.setDisplay(mPreview.getHolder().getSurface());

            // Set the data source in another thread
            // which actually downloads the mp3 or videos
            // to a temporary location
            Runnable r = new Runnable() {
                public void run() {
                    try {
                        setDataSource(path);
                    } catch (IOException e) {
                        Log.e(TAG, e.getMessage(), e);
                    }
                    mp.prepare();
                    Log.v(TAG, "Duration:  ===>" + mp.getDuration());
                    mp.start();
                }
            };
            new Thread(r).start();
        } catch (Exception e) {
            Log.e(TAG, "error: " + e.getMessage(), e);
            if (mp != null) {
                mp.stop();
                mp.release();
            }
        }
    }

    /**
     * If the user has specified a local url, then we download the
     * url stream to a temporary location and then call the setDataSource
     * for that local file
     *
     * @param path
     * @throws IOException
     */
    private void setDataSource(String path) throws IOException {
        if (!URLUtil.isNetworkUrl(path)) {
            mp.setDataSource(path);
        } else {
            URL url = new URL(path);
            URLConnection cn = url.openConnection();
            cn.connect();
            InputStream stream = cn.getInputStream();
            if (stream == null)
                throw new RuntimeException("stream is null");
            File temp = File.createTempFile("mediaplayertmp", "dat");
            String tempPath = temp.getAbsolutePath();
            FileOutputStream out = new FileOutputStream(temp);
            byte buf[] = new byte[128];
            do {
                int numread = stream.read(buf);
                if (numread <= 0)
                    break;
                out.write(buf, 0, numread);
            } while (true);
            mp.setDataSource(tempPath);
            try {
                stream.close();
            }
            catch (IOException ex) {
                Log.e(TAG, "error: " + ex.getMessage(), ex);
            }
        }
    }

    public void onError(MediaPlayer mediaPlayer, int what, int extra) {
        Log.e(TAG, "onError--->   what:" + what + "    extra:" + extra);
        if (mediaPlayer != null) {
            mediaPlayer.stop();
            mediaPlayer.release();
        }
    }

    public void onBufferingUpdate(MediaPlayer arg0, int percent) {
        Log.d(TAG, "onBufferingUpdate called --->   percent:" + percent);
    }

    public void onCompletion(MediaPlayer arg0) {
        Log.d(TAG, "onCompletion called");
    }

    public void onPrepared(MediaPlayer mediaplayer) {
        Log.d(TAG, "onPrepared called");
    }

    public boolean surfaceCreated(SurfaceHolder surfaceholder) {
        Log.d(TAG, "surfaceCreated called");
        return true;
    }

    public void surfaceChanged(SurfaceHolder surfaceholder, int i, int j, int k) {
        Log.d(TAG, "surfaceChanged called");
    }

    public void surfaceDestroyed(SurfaceHolder surfaceholder) {
        Log.d(TAG, "surfaceDestroyed called");
    }
}


ta ai!

abssssss

Vitor Yudi Hansen

Tutorial Flex para Android em 90 minutos

vale a pena conferir o tutorial do site:

http://coenraets.org/blog/2010/12/tutorial-flex-for-android-in-90-minutes/

bem interessante para quem está inicando!
abs

Vitor Yudi Hansen

Analytics já informa audiência em tempo real

São Paulo — Quando anunciou um pacote de novidades no seu serviço Analytics, há cerca e um mês, o Google deu uma boa notícia a empresas em busca de uma boa ferramenta para medir a audiência instantânea de seus sites na web. O Analytics passou a medir o número de visitantes em tempo real, uma função que ainda está em fase de testes mas já pode ser usada.
Embora haja outras ferramentas com recursos mais avançados para a medição de audiência na internet, o Google Analytics mantém ampla liderança nessa área. Dados da empresa especializada Cardinal Path indicam que ele é usado por 45% das 500 maiores corporações dos Estados Unidos. Entre os sites de varejo, sua participação é de 64%.

Naturalmente, o fato de o Google Analytics ser gratuito – ao menos para sites com até 5 milhões de visitas por mês – é um atrativo. Além disso, ele é uma opção natural para quem faz campanhas publicitárias por meio do sistema de anúncios do Google. Mas Stéphane Hamel, especialista da Cardinal Path, diz a principal razão para o sucesso é que ele funciona bem.
“É veloz, simples, flexível, confiável e complementado por um amplo ecossistema de conhecimentos, serviços e ferramentas auxiliares”, escreveu ele no blog da empresa. Sem a medição instantânea, porém, o Analytics não atendia a sites que publicam informações em tempo real. O serviço fornecia dados com horas de atraso, que não serviam como base para ações imediatas.
Agora, é possível conferir quantas pessoas estão visualizando cada página em cada instante. O serviço também informa de onde vêm os visitantes. Ele lista, por exemplo, quantos chegaram até o site depois de clicar num anúncio ou passar por uma rede social ou um buscador. Ele ainda aponta, num mapa, onde as pessoas estão.
O acesso à medição em tempo real tem sido liberado de forma gradual aos usuários junto com a nova versão do Google Analytics. Quem ainda não tem acesso a essa nova versão pode fazer um cadastro no site do Google para obtê-la. Os recursos do Google Analytics antigo, como relatórios de audiência em períodos específicos, continuam disponíveis.

por :
http://info.abril.com.br/noticias/internet/analytics-ja-informa-audiencia-em-tempo-real-31102011-39.shl



Vitor Yudi Hansen

JavaOne

Em dezembro acontecerá o JavaOne Latin American Aqui on Brasil,

segue o link do evento:

http://www.oracle.com/openworld/lad-pt/index.html

Lembrando que por enquanto as inscrições para visitar os estandes é gratuita.

no dia custará 120,00

então garanta já a sua entrada!

absssssssssss


Vitor Yudi Hansen

Milestone 2 - Promoção.

O celular Milestone 2 está com uma super promoção,

por R$996,00 vale apena!!!
no Submarino

http://www.submarino.com.br/produto/11/23494922?&franq=303806

Vitor Yudi Hansen