2012年7月10日火曜日

Screen on

I try screen on. I would like to keep screen for development.

If I keep screen on
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

source code is here.




If don't keep screen on
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
source code is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年6月3日日曜日

Java File I/O

Java Info

FileWriter, write text.
FileReader, read text

FileOutputStream, write binary

FileInputStream, read binary.



2012年4月29日日曜日

Record Web Start Time

I try Date Class. I create app of "record web start time" to check Date Class.
The app have the time of pushing "Web Start" button.

I get now time.
SimpleDateFormat  sdf = new SimpleDateFormat("yyyy' /'MM'/'dd'/ 'HH':'mm':'ss':'");  
Date  date = new Date();  
I get previous time of pushing "Web Start" button. I use SharedPreferences Class.
SharedPreferences pref = getSharedPreferences("pref", MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE);
String votetime = pref.getString("votetime", sdf.format(date));
I preview previous time.
TextView prevvotetime = (TextView)findViewById(R.id.text1);
prevvotetime.setText(votetime);
If pushing "Web Start" button, I update time.
set listener.
Button votebutton = (Button)findViewById(R.id.button1);
votebutton.setOnClickListener(new View.OnClickListener() {

 @Override
 public void onClick(View v) {
 }
});
I update time and save time to SharedPreferences .
SimpleDateFormat  sdf = new SimpleDateFormat("yyyy' /'MM'/'dd'/ 'HH':'mm':'ss':'");  
Date  date = new Date(); 

SharedPreferences pref = getSharedPreferences("pref", MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE);
Editor e = pref.edit();
e.putString("votetime", sdf.format(date));
e.commit();
source code is here.
apk is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年4月22日日曜日

Web Browser

I try WebView class.

donwload apk.



set setWebViewClient for no intent WEB BROWSER.
WebView w = (WebView)findViewById(R.id.webView1);
w.setWebViewClient(new WebViewClient());
enable javascript.
w.getSettings().setJavaScriptEnabled(true);
add Zoom Control
w.getSettings().setBuiltInZoomControls(true);
If app finish to load web page, call callback. I register callback.
w.setWebViewClient(new webclient());
and callback function by WebViewClient. If call onPageFinish, app update url text and app focus web page.
public class webclient extends WebViewClient {
    @Override
    public void onPageFinished(WebView view, String url) {
        setProgressBarIndeterminateVisibility(false);
        WebView w = (WebView)findViewById(R.id.webView1);
  TextView t = (TextView)findViewById(R.id.editText1);
  String u = w.getUrl();
  t.setText(u);
  w.requestFocus();
    }
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        setProgressBarIndeterminateVisibility(true);
    } 
}
If user push W button, app hide ime.
Button b = (Button)findViewById(R.id.button1);
b.setOnClickListener( new View.OnClickListener() {
 @Override
 public void onClick(View v) {
        EditText e = (EditText)findViewById(R.id.editText1);
        if (e.isFocused()) {
         WebView w = (WebView)findViewById(R.id.webView1);
  mI.hideSoftInputFromWindow(w.getWindowToken(), 0);
If user push W button, app jump url inputted by user.
If input text is not ".", app think text is search word.
If input text is not "http://", app add "http://" to url.
TextView t = (TextView)findViewById(R.id.editText1);
if (!t.getText().toString().matches(".")){
 w.loadUrl("http://www.google.co.jp/search?q=" + t.getText().toString());
} else if (!t.getText().toString().startsWith("http://")) {
 w.loadUrl("http://" + t.getText().toString());
} else {
 w.loadUrl(t.getText().toString());
}
If user input url text, app foucs text all.
EditText e = (EditText)findViewById(R.id.editText1);
e.setOnFocusChangeListener(new View.OnFocusChangeListener() {
 
 @Override
 public void onFocusChange(View v, boolean hasFocus) {
  if (hasFocus == true) {
         EditText e = (EditText)findViewById(R.id.editText1);
   e.selectAll();
  }
 }
});
If user push back button, app go back's web page.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
 if (keyCode == KeyEvent.KEYCODE_BACK) {
        WebView w = (WebView)findViewById(R.id.webView1);
        w.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
source code is here. Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年4月20日金曜日

analysis mp4 file

I did mediaRecorder and ParcelFileDescriptor class. and I analysis transfered file.

it is the blog.

I found description for ISO 14496-12 "ISO base media file format".
but analysis is difficult.

it is result.
xls file

2012年4月17日火曜日

ScaleImage

I did to scale Image on there.
But it is not scale on center, it is to scale on position( 0, 0).

I try to scale on center.

default position is (0. 0).
first, position move center at image
float mx = canvas.getWidth();
float my = canvas.getHeight();
canvas.translate(mx/2, my/2);
second, scale it.
canvas.scale(mScaleFactor, mScaleFactor);
final, take back.
canvas.translate(-(mx/2), -(my/2));
it is cool. source code is here. Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年4月16日月曜日

move image


I try to move image in android.
I prepare the image.
int resid = context.getResources().getIdentifier("s066", "drawable", context.getPackageName());
mImage = context.getResources().getDrawable(resid);
mImage.setBounds(0, 0, mImage.getIntrinsicWidth(), mImage.getIntrinsicHeight() );
I prepare GestureDetector for getting onScroll event.
mGestureDetector = new GestureDetector(context, this);
I get touch event.
mGestureDetector.onTouchEvent(ev);
onScroll get moving position and call invalidate() for onDrow.
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
  float distanceY) {
 Log.d("book", "distanceX=" + distanceX + "  distanceY=" + distanceY);
 mTranslateX -= distanceX;
 mTranslateY -=distanceY;
 invalidate();
 
 return false;
}
onDrow.
@Override
public void onDraw(Canvas canvas) {
 super.onDraw(canvas);
 
 canvas.save();
 canvas.translate(mTranslateX, mTranslateY);
 mImage.draw(canvas);
 
 canvas.restore();
}
source code is here. Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年4月15日日曜日

ScaleGestureDetector

I referred this site.

I create custom view.
public class ScaleGestureDetectorView extends View {
I prepare image for Drawable. I prepare s093 named jpeg image.
int resid = context.getResources().getIdentifier("s093", "drawable", context.getPackageName());
Drawable mImage;
mImage = context.getResources().getDrawable(resid);
mImage.setBounds(0, 0, width, height );
I prepare ScaleGestureDetector class.
mScaleGestureDetector = new ScaleGestureDetector(context, mSimpleListener);
call onDraw() by invalidate().
public void onDraw(Canvas canvas) {
 super.onDraw(canvas);
  
 canvas.save();
 canvas.scale(mScaleFactor, mScaleFactor);
 mImage.draw(canvas);
  
 canvas.restore();
input event to ScaleGestureDetector at onTouchEvent.
public boolean onTouchEvent(MotionEvent ev) {
    mScaleGestureDetector.onTouchEvent(ev);
    return true;
}
I prepare ScaleGestureDetector.SimpleOnScaleGestureListener
public void onScaleEnd(ScaleGestureDetector detector) {
 Log.d("ges", "onScaleEnd "+ detector.getScaleFactor());
 mScaleFactor *= detector.getScaleFactor();
 invalidate();
 super.onScaleEnd(detector);
}

source code is here. Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年4月14日土曜日

OnGestureListener

If you try my sample, you need image and import image at res/drawable-hdpi .

I try onGestureListener interface.
I prepare GestureDetector.
mGestureDetector = new GestureDetector(this, this);
I input onTouchEvent parameter.
public boolean onTouchEvent(MotionEvent ev) {
 mGestureDetector.onTouchEvent(ev);
 return false;
}
I prepare onFling at onGestureListener.
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
If velocityY smaller than 0, next page.
if (velocityY < 0) {//right
 mPagenumber++;
If velocityY bigger than 0, prev page.
}else {//left
 mPagenumber--;
select image from Resource. I prepare image name "sxxx.jpg". xxx is number. exsapme s001.jpg, s002.jpg, s003.jpg....s020.jpg...
I set selected image to view.
Resources res = getResources();
int resid = res.getIdentifier(filename, "drawable", getPackageName());
ImageView img = (ImageView)findViewById(R.id.imageView1);
img.setImageResource(resid);
source code is here. Please suggest your android issue by twitter or mail, I would try to clear up your issue.

MediaRecoder ParcelFileDescriptor

I try to record camera image in other pc storage.
I use network for transfer data.

I refered this site.

I prepared ParcelFileDescriptor and socket.
ParcelFileDescriptor pfd = null;
Socket  socket = null;
I set for network setting.
192.168.1.2 is my pc ip address.
String hostname = "192.168.1.2";
int port = 5000;
I try to create socket
try {
 socket = new Socket(InetAddress.getByName(hostname), port);
 pfd = ParcelFileDescriptor.fromSocket(socket);
 
} catch (UnknownHostException e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
} catch (IOException e1) {
 // TODO Auto-generated catch block
 e1.printStackTrace();
}
I try to set ParcelFileDescriptor to MediaRecorder.
_mediarecorder = new MediaRecorder();
_mediarecorder.setOutputFile(pfd.getFileDescriptor());
Android source code is here.
Next Server side program. this program do in my pc(192.168.1.2).
and this is java language.
I create server socket. port number need to be same between client and server.
ServerSocket svsock = new ServerSocket(5000);
I prepare file.
outFile = new FileWriter("xyz" + i + ".mp4");
I wait client(Android) connecting by acccept.
Socket sock = svsock.accept();
If client(Android) connected, I use accept socket sock.
sock.getInputStream()
I prepare BufferedReader and BufferedWriter, and I write received data to the file.
BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter wt = new BufferedWriter(outFile);
while(sock.isConnected()) {
 int line = in.read();
 if (line == -1) {
  break;
 }
 wt.write(line);
}
If client(Android) connecting finished, I close.
outFile.close();
sock.close();
server sid source code is here.
IMPORTANT, First server side do, Next Client(Android) do.

server side recive file analysis.

Please suggest your android issue by twitter or mail, I would try to clear up your issue.

client Socket

I send data by socket.
I get socket.
Socket sk = null;
sk = new Socket(addr, 5000);
I prepare BufferedWriter for getOutputStream().
BufferedWriter wBuffer = null;
wBuffer = new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));
data write and flush and close for sending.
wBuffer.write("testtesttest");
Log.d("socket", "write");
wBuffer.flush();
Log.d("socket", "flush");
wBuffer.close();
I got message "testtesttest" at server side.
source code is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

Call

I try intent for call the number.
I prepare button for call. and prepare listener.
I intent ACTION_CALL.
Button b= (Button)findViewById(id.button1);
b.setOnClickListener(new View.OnClickListener() {
 
 @Override
 public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:117"));
        startActivity(intent);
 }
});

If you pushed button, phone call 117. 117 is "you get time in japan".
source code is here. Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年3月25日日曜日

socket (no android

this is not android program. socket program for c. this is server side.
#include 
#include 
#include 
#include 
#include 
#include 

int main()
{

    int server_sockfd, client_sockfd;
    int server_len, client_len;
    struct sockaddr_in server_address;
    struct sockaddr_in client_address;

    server_sockfd = socket(AF_INET, SOCK_STREAM, 0);

    server_address.sin_family = AF_INET;
    server_address.sin_addr.s_addr = INADDR_ANY;
    server_address.sin_port = 5000;
    server_len = sizeof(server_address);
    bind(server_sockfd, (struct sockaddr *) &server_address, server_len);

    listen(server_sockfd, 5);
    while(1)
    {
        char buf[1024];
        printf("server waiting\n");

        client_sockfd =
            accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);
  printf("server accept\n");

  int allreadsize = 0;
  while(1) {
         int readsize = read(client_sockfd, buf, 1024);
   if (readsize < 0) {
    printf("err\n");
    break;
   } else if(readsize == 0 ) {
    printf("\ndisconnect by client recv size is %d\n", allreadsize);
    break;
   }
   int i = 0;
   int temp = 0;
   for (i= 0;i< readsize;i++) {
    temp = (int)buf[i];
    temp &=0xff;
    printf("%.2x", temp);
   }
   allreadsize += readsize;
  }
  printf("close socket\n");
        close(client_sockfd);
    }
}


this is client side.
#include  
#include  
#include  
#include  
#include  
#include  
#include  


int main(int argc, char **argv)
{

    int sockfd, len, result;
    struct sockaddr_in address;
    char *ch = (char*)argv[1]; 

    sockfd = socket(AF_INET, SOCK_STREAM, 0);

    address.sin_family = AF_INET;
    address.sin_addr.s_addr = inet_addr("127.0.0.1");
    address.sin_port = 5000;
    len = sizeof(address);

    result = connect(sockfd, (struct sockaddr *)&address, len);
    if(result == -1) {
  printf("oops : client1");
 }

 int writesize = 0;
 int l = strlen(ch);
    writesize = write(sockfd, ch, l);
    close(sockfd);
    return 0;
}

source code is here and here. Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年3月4日日曜日

Zoom

i try Camera Zoom.
first, i check to suppert Zoom.
Camera.Parameters param = camera.getParameters();
Log.d("camera", "isZoomSupported = " + param.isZoomSupported ());
and i check to support smooth zoom. my nexusOne is not supported.
Camera.Parameters param = camera.getParameters();
Log.d("camera", "isSmoothZoomSupported = " + param.isSmoothZoomSupported ());
i view list of zoom size.
Camera.Parameters param = camera.getParameters();
List ZoomRatislist = param.getZoomRatios ();
for (int i=0;i < ZoomRatislist.size();i++) {
 Log.d("camera", "list " + i + " = " + ZoomRatislist.get(i));
}
it is list of nexusone zoom. passible is between 0 and 12, from x1 to x2.
0 = 100
1 = 104
2 = 112
3 = 117
4 = 125
5 = 131
6 = 141
7 = 148
8 = 158
9 = 166
10 = 178
11 = 186
12 = 200
i set zoom.
Camera.Parameters param = camera.getParameters();
param.setZoom(zoom);
camera.setParameters(param);
source code is here.

2012年2月26日日曜日

send mail

I try to send text by intent.
I make mail address.
String to = new String("xxxxx@gmail.com");
I make subject.
String title = new String("Hello");
I make text contents.
String text = new String("test");
I make Intent and set action.
Intent in = new Intent();
in.setAction(Intent.ACTION_SENDTO);
I set mail address.
in.setData(Uri.parse("mailto:" + to));
I set subject.
in.putExtra(Intent.EXTRA_SUBJECT, title);
I set text contents.
in.putExtra(Intent.EXTRA_TEXT, text);
I send text.
startActivity(in);
source code is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

play mp3

I try to play mp3 music file.
I create MediaPlayer class.
MediaPlayer mP = new MediaPlayer();
I set mp3 file.
mP.setDataSource("/sdcard/music/sample.mp3");
I call prepare() api and start() api.
mP.prepare();
mP.start();
prepare() and setDataSource() need try and catch.
source code is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年2月19日日曜日

SpeechRecognizer

I check SpeechRecognizer class. This class is Speech Recognizing class.
How to get instance is call createSpeechRecognizer(Context);
SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer(getApplicationContext());
and make listener class,
class MyRecognitionListener implements RecognitionListener {

 @Override
 public void onBeginningOfSpeech() {
  Log.d("Speech", "onBeginningOfSpeech");
 }

 @Override
 public void onBufferReceived(byte[] buffer) {
  Log.d("Speech", "onBufferReceived");
 }

 @Override
 public void onEndOfSpeech() {
  Log.d("Speech", "onEndOfSpeech");
 }

 @Override
 public void onError(int error) {
  Log.d("Speech", "onError");
 }

 @Override
 public void onEvent(int eventType, Bundle params) {
  Log.d("Speech", "onEvent");
 }

 @Override
 public void onPartialResults(Bundle partialResults) {
  Log.d("Speech", "onPartialResults");
 }

 @Override
 public void onReadyForSpeech(Bundle params) {
  Log.d("Speech", "onReadyForSpeech");
 }
 

 @Override
 public void onResults(Bundle results) {
  Log.d("Speech", "onResults");
  ArrayList strlist = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
  for (int i = 0; i < strlist.size();i++ ) {
   Log.d("Speech", "result=" + strlist.get(i));
  }
 }

 @Override
 public void onRmsChanged(float rmsdB) {
  Log.d("Speech", "onRmsChanged");
 }
 
}
the important method is onResults. There is recognized word in "results".
public void onResults(Bundle results) {
 Log.d("Speech", "onResults");
 ArrayList strlist = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
 for (int i = 0; i < strlist.size();i++ ) {
  Log.d("Speech", "result=" + strlist.get(i));
 }
}
I make the listener.
MyRecognitionListener listener = new MyRecognitionListener();
I set listener.
sr.setRecognitionListener(listener);
I start speech recognizing.
sr.startListening(RecognizerIntent.getVoiceDetailsIntent(getApplicationContext()));
onResults() call only once.
I said "english".
logcat printed.
result=リング
result=english
result=ring
result=イング
result=ing
It is OK!
I must have android.permission.RECORD_AUDIO. and network is enable. source code is here. Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年2月9日木曜日

Camera Lock again

I found exception at Camera class Lock() API, then my android version up by 2.3.6.
but, I found it to be good !
My androids, NexusOne and xperia ray are ok follow program.
It is point to do MediaRecorder.setVideoSize().
_mediarecorder = new MediaRecorder();
_mediarecorder.setCamera(_camera);
_mediarecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
_mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
_mediarecorder.setVideoSize(640, 480);//Add
_mediarecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
source code is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年2月5日日曜日

get sdcard path.

I get sdcard path.
File file = Environment.getExternalStorageDirectory();
Log.d("test", file.getPath());
result:
/mnt/sdcard
I do "adb shell", and try "cd /sdcard/" but I could move. why ?
source code is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年2月1日水曜日

getNetworkInfo

I try getNetworkInfo().
I get ConnectivityManager class.
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
I get NetworkInfo class, this is TYPE_MOBILE sample.
NetworkInfo ni = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
In Wifi and mobile active, I try setNetworkPrefernce(), I expect change network interface changing. but No change.
cm.setNetworkPreference(ConnectivityManager.TYPE_MOBILE);
If you use setNetworkPreference(), you must add CHANGE_NETWORK_STATE feature.
source code is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年1月31日火曜日

getAllNetworkInfo

I check getAllNetworkInfo() API. There are many network in my android. I get all network.
NetworkInfo[] ni = cm.getAllNetworkInfo();
print network information.
Log.d("net", "getDetailedState = " + dt);
Log.d("net", "getExtraInfo = " + ni[i].getExtraInfo());
Log.d("net", "getReason = " + ni[i].getReason());

NetworkInfo.State st = ni[i].getState();

Log.d("net", "getState = " + st);
Log.d("net", "getSubtype = " + ni[i].getSubtype());
Log.d("net", "getSubtypeName = " + ni[i].getSubtypeName());
Log.d("net", "getType = " + ni[i].getType());
Log.d("net", "getTypeName = " + ni[i].getTypeName());
Log.d("net", "isAvailable = " + ni[i].isAvailable());
Log.d("net", "isConnected = " + ni[i].isConnected());
Log.d("net", "isConnectedOrConnecting  = " + ni[i].isConnectedOrConnecting ());
Log.d("net", "isFailover   = " + ni[i].isFailover  ());
Log.d("net", "isRoaming   = " + ni[i].isRoaming  ());
This is my phone result.
getDetailedState = DISCONNECTED
getExtraInfo = dm.jplat.net
getReason = dataDisabled
getState = DISCONNECTED
getSubtype = 0
getSubtypeName = UNKNOWN
getType = 0
getTypeName = mobile
isAvailable = false
isConnected = false
isConnectedOrConnecting  = false
isFailover   = false
isRoaming   = false
getDetailedState = DISCONNECTED
getExtraInfo = null
getReason = null
getState = DISCONNECTED
getSubtype = 0
getSubtypeName = 
getType = 1
getTypeName = WIFI
isAvailable = false
isConnected = false
isConnectedOrConnecting  = false
isFailover   = true
isRoaming   = false
getDetailedState = IDLE
getExtraInfo = null
getReason = null
getState = UNKNOWN
getSubtype = 0
getSubtypeName = UNKNOWN
getType = 2
getTypeName = mobile_mms
isAvailable = false
isConnected = false
isConnectedOrConnecting  = false
isFailover   = false
isRoaming   = false
getDetailedState = IDLE
getExtraInfo = null
getReason = null
getState = UNKNOWN
getSubtype = 0
getSubtypeName = UNKNOWN
getType = 3
getTypeName = mobile_supl
isAvailable = false
isConnected = false
isConnectedOrConnecting  = false
isFailover   = false
isRoaming   = false
getDetailedState = IDLE
getExtraInfo = null
getReason = null
getState = UNKNOWN
getSubtype = 0
getSubtypeName = UNKNOWN
getType = 4
getTypeName = mobile_dun
isAvailable = false
isConnected = false
isConnectedOrConnecting  = false
isFailover   = false
isRoaming   = false
getDetailedState = IDLE
getExtraInfo = null
getReason = null
getState = UNKNOWN
getSubtype = 0
getSubtypeName = UNKNOWN
getType = 5
getTypeName = mobile_hipri
isAvailable = false
isConnected = false
isConnectedOrConnecting  = false
isFailover   = false
isRoaming   = false



source code is here.

Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年1月30日月曜日

ConnectivityManager

I check ConnectivityManager Class.

I get Active network. If active network isn't, app makes exception.
ConnectivityManager cm = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();

I print network information.
NetworkInfo.DetailedState dt = ni.getDetailedState();
Log.d("net", "getDetailedState = " + dt);
Log.d("net", "getExtraInfo = " + ni.getExtraInfo());
Log.d("net", "getReason = " + ni.getReason());
NetworkInfo.State st = ni.getState();
Log.d("net", "getState = " + st);
Log.d("net", "getSubtype = " + ni.getSubtype());
Log.d("net", "getSubtypeName = " + ni.getSubtypeName());
Log.d("net", "getType = " + ni.getType());
Log.d("net", "getTypeName = " + ni.getTypeName());
Log.d("net", "isAvailable = " + ni.isAvailable());
Log.d("net", "isConnected = " + ni.isConnected());
Log.d("net", "isConnectedOrConnecting  = " + ni.isConnectedOrConnecting ());
Log.d("net", "isFailover   = " + ni.isFailover  ());
Log.d("net", "isRoaming   = " + ni.isRoaming  ());


This result is 3g mobile active:
 getDetailedState = CONNECTED
 getExtraInfo = dm.jplat.net
 getReason = apnSwitched
 getState = CONNECTED
 getSubtype = 0
 getSubtypeName = UNKNOWN
 getType = 0
 getTypeName = mobile
 isAvailable = false
 isConnected = true
 isConnectedOrConnecting  = true
 isFailover   = false
 isRoaming   = false
This result is wifi active:
 getDetailedState = CONNECTED
 getExtraInfo = null
 getReason = null
 getState = CONNECTED
 getSubtype = 0
 getSubtypeName = 
 getType = 1
 getTypeName = WIFI
 isAvailable = true
 isConnected = true
 isConnectedOrConnecting  = true
 isFailover   = false
 isRoaming   = false

source code is here.
Please suggest your android issue by twitter or mail, I would try to clear up your issue.

2012年1月15日日曜日

test

test
test
testffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
testffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
test

2012年1月5日木曜日

HttpClient

I use HttpClient Class. I would like to get yahoo's Web Page.
I create DefaultHttpClient Class and set url, create Http Get Message.
String url = "http://www.yahoo.co.jp";
HttpClient hc = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
I do http Get execute. and receive http response.
HttpResponse res;
res = hc.execute(get);
If response is 200 OK, I get http content.
if (res.getStatusLine().getStatusCode() == 200) {
 //It is ok.
 InputStream input = res.getEntity().getContent();
I print http content by LogCat.
BufferedReader rBuffer = new BufferedReader(new InputStreamReader(input, "UTF-8"));
String readLine;

try {
 while((readLine = rBuffer.readLine()) != null) {
  Log.d("HttpClientActivity", readLine);

I could get yahoo's Web Page.

Source code is here.

socket

I used Socket Class. I get my blog by Socket Class.

Create Socket.
String host ="playandworkandroid.blogspot.com"; 
sk = new Socket(host, 80);
I prepare for send data and receive data.
rBuffer = new BufferedReader(new InputStreamReader(sk.getInputStream()));
wBuffer = new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));
I make http Get messeage . and Send it!
wBuffer.write("GET / HTTP/1.1\n");
wBuffer.write("host : " + host + "\n");
wBuffer.write("\n");
wBuffer.flush();
If it receive data, print console.
while((readLine = rBuffer.readLine()) != null) {
 Log.d("HttpGetActivity", readLine);
}
I got my blog page.

Source code is here.

2012年1月3日火曜日

ActivityInstrumentationTestCase2 GridView ClickItem

I think must be selected whether onClickItemListener API or onClickListener() API.
First, Test Target Activity...
Reference Basic GirdView Program to here.

Add OnItemClickListener() include GridView. It is selected position information.
OnItemClickListener Class.
mGridView.setOnItemClickListener(new OnItemClickListener() {

 @Override
 public void onItemClick(AdapterView arg0, View arg1, int position,
   long id) {
  Log.d("GridViewActivity", "onItemClick " + position + " " + id);
  
 }
 
});

Second, Tester. It is extends ActivityInstrumentationTestCase2. I call performItemClick with GridView and postion. must be UIThread
mActivity.runOnUiThread(new Runnable() {
 public void run() {
  
  Log.d("GridViewActivity", "performItemClick 3");
  gridview.performItemClick(gridview, 3, 0);
  
  
 }
});
mInstrumentation.waitForIdleSync();

Check Logcat.
performItemClick 3
onItemClick 3 0
It is OK.
  Test target source code is here.
  Tester source code is here.

ActivityInstrumentationTestCase2 GridView Select View

First, Test Target Activity...
Reference Basic GirdView Program to here.

Add OnClikcListener() include GridView. It is include position information. I create other
OnClickListener Class.
class OnClickListenerDetectPosition implements OnClickListener {
 private int mPosition = 0;
 public OnClickListenerDetectPosition(int position ) {
  mPosition = position;
 }
 @Override
 public void onClick(View v) {
  Log.d("GridViewActivity", "onClick = " + mPosition);
 }
 
}
register OnClickListner by it.
OnClickListener onclikclistener = new OnClickListenerDetectPosition(position);
imageView.setOnClickListener(onclikclistener);

Second, Tester. It is extends ActivityInstrumentationTestCase2. set position. must be UIThread
mActivity.runOnUiThread(new Runnable() {
 public void run() {
  Log.d("GridViewActivity", "setSelection 2");
  gridview.setSelection(2);
 }
});
mInstrumentation.waitForIdleSync();

get selected view and click view.
mActivity.runOnUiThread(new Runnable() {
 public void run() {
  
  Log.d("GridViewActivity", "getSelectedItemPosition = " + gridview.getSelectedItemPosition ());
  
  Log.d("GridViewActivity", "getSelectedView");
  ImageView imageview = (ImageView)gridview.getSelectedView();
  Log.d("GridViewActivity", "performClick");
  imageview.performClick();
 }
});
Check Logcat.
setSelection 2
getSelectedItemPosition = 2
onClick = 2
It is OK.
  Test target source code is here.
  Tester source code is here.