您的位置:首页 > 移动开发 > Android开发

Android 常用的方法小工具总结

2011-08-11 17:52 549 查看
转自

/** 
* 为程序创建桌面快捷方式 
*/
private

void addShortcut(){
Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");

//快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
shortcut.putExtra("duplicate", false); //不允许重复创建
//指定当前的Activity为快捷方式启动的对象: 如 //com.everest.video.VideoPlayer
//注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序
ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName());
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));
//快捷方式的图标
ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
sendBroadcast(shortcut);
}
 
/**
* 删除程序的快捷方式
*/
private

void delShortcut(){
Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
//快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
//指定当前的Activity为快捷方式启动的对象: 如 //com.everest.video.VideoPlayer
//注意: ComponentName的第二个参数必须是完整的类名(包名+类名),否则无法删除快捷方式
String appClass = this.getPackageName() + "." +this.getLocalClassName();
ComponentName comp = new ComponentName(this.getPackageName(), appClass);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));
sendBroadcast(shortcut);
}
 
全屏显示
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
横竖屏显示
private

void changedScreen(){
int request = this.getRequestedOrientation();
if(request == -1){
Toast.makeText(TaskRunActivity.this, "None 1", Toast.LENGTH_SHORT).show();
}else{
if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}else

if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
}
 
获取手机分辩率
DisplayMetrics dm = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);
intwidth = dm.widthPixels;
intheight = dm.heightPixels;
图形用户界面

文本框(TextView)

列表(ListView)

卷轴视图(ScrollView)

编辑框(EditText)

按钮(Button)

下载列表(Spinner)

多项选择(CheckBok)

图形用户界面

菜单(Menu)

提示(toast)

对话框(Dialog)

日期(DatePicker)

时间(TimePicker)

单项选择(RadioGroup RadioButton)

图形用户界面

线性布局(LinearLayout)

相对布局(RelativeLayout)

绝对布局(AbsoluteLayout)

表格布局(TableLayout)

数据据存储

系统偏好

文件

网络

数据库

                                                                                                                                                                                                          显示网页:

  1. Uri uri = Uri.parse("http://www.google.com");

  2. Intent it = new Intent(Intent.ACTION_VIEW,uri);

  3. startActivity(it);
显示地图:

  1. Uri uri = Uri.parse("geo:38.899533,-77.036476");

  2. Intent it = new Intent(Intent.Action_VIEW,uri);

  3. startActivity(it);
路径规划:

  1. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");

  2. Intent it = new Intent(Intent.ACTION_VIEW,URI);

  3. startActivity(it);

拨打电话:

调用拨号程序

  1. Uri uri = Uri.parse("tel:xxxxxx");

  2. Intent it = new Intent(Intent.ACTION_DIAL, uri);   

  3. startActivity(it);   

  1. Uri uri = Uri.parse("tel.xxxxxx");

  2. Intent it =new Intent(Intent.ACTION_CALL,uri);

  3. 要使用这个必须在配置文件中加入<uses-permission id="Android.permission.CALL_PHONE" />

发送SMS/MMS
 

调用发送短信的程序

  1. Intent it = new Intent(Intent.ACTION_VIEW);

  2. it.putExtra("sms_body", "The SMS text");

  3. it.setType("vnd.android-dir/mms-sms");

  4. startActivity(it);   
发送短信

  1. Uri uri = Uri.parse("smsto:0800000123");

  2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);

  3. it.putExtra("sms_body", "The SMS text");

  4. startActivity(it);   
发送彩信

  1. Uri uri = Uri.parse("content://media/external/images/media/23");

  2. Intent it = new Intent(Intent.ACTION_SEND);

  3. it.putExtra("sms_body", "some text");

  4. it.putExtra(Intent.EXTRA_STREAM, uri);

  5. it.setType("image/png");

  6. startActivity(it);
发送Email

  1.

  2. Uri uri = Uri.parse("mailto:xxx@abc.com");

  3. Intent it = new Intent(Intent.ACTION_SENDTO, uri);

  4. startActivity(it);

  1. Intent it = new Intent(Intent.ACTION_SEND);

  2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");

  3. it.putExtra(Intent.EXTRA_TEXT, "The email body text");

  4. it.setType("text/plain");

  5. startActivity(Intent.createChooser(it, "Choose Email Client"));   

  1. Intent it=new Intent(Intent.ACTION_SEND);   

  2. String[] tos={"me@abc.com"};   

  3. String[] ccs={"you@abc.com"};   

  4. it.putExtra(Intent.EXTRA_EMAIL, tos);   

  5. it.putExtra(Intent.EXTRA_CC, ccs);   

  6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");   

  7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   

  8. it.setType("message/rfc822");   

  9. startActivity(Intent.createChooser(it, "Choose Email Client"));
添加附件

  1. Intent it = new Intent(Intent.ACTION_SEND);

  2. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");

  3. it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");

  4. sendIntent.setType("audio/mp3");

  5. startActivity(Intent.createChooser(it, "Choose Email Client"));
播放多媒体

  1.   

  2. Intent it = new Intent(Intent.ACTION_VIEW);

  3. Uri uri = Uri.parse("file:///sdcard/song.mp3");

  4. it.setDataAndType(uri, "audio/mp3");

  5. startActivity(it);

  1. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");

  2. Intent it = new Intent(Intent.ACTION_VIEW, uri);

  3. startActivity(it);   
Uninstall 程序

  1. Uri uri = Uri.fromParts("package", strPackageName, null);

  2. Intent it = new Intent(Intent.ACTION_DELETE, uri);

  3. startActivity(it);
//调用相册

public static final String MIME_TYPE_IMAGE_JPEG = "image/*";

public static final int ACTIVITY_GET_IMAGE = 0;

Intent getImage = new Intent(Intent.ACTION_GET_CONTENT); 

getImage.addCategory(Intent.CATEGORY_OPENABLE); 

getImage.setType(MIME_TYPE_IMAGE_JPEG);

startActivityForResult(getImage, ACTIVITY_GET_IMAGE);
//调用系统相机应用程序,并存储拍下来的照片

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

time = Calendar.getInstance().getTimeInMillis();

intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment

.getExternalStorageDirectory().getAbsolutePath()+"/tucue", time + ".jpg")));

startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE);

uninstall apk

Uri uninstallUri = Uri.fromParts("package", "xxx", null);

returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);

install apk

Uri installUri = Uri.fromParts("package", "xxx", null);

returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);

play audio

Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");

returnIt = new Intent(Intent.ACTION_VIEW, playUri);
//发送附件

Intent it = new Intent(Intent.ACTION_SEND);   

it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   

it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/eoe.mp3");   

sendIntent.setType("audio/mp3");   

startActivity(Intent.createChooser(it, "Choose Email Client"));
//搜索应用

Uri uri = Uri.parse("market://search?q=pname:pkg_name");   

Intent it = new Intent(Intent.ACTION_VIEW, uri);   

startActivity(it);   

//where pkg_name is the full package path for an application
//进入联系人页面

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(People.CONTENT_URI);

startActivity(intent);
//查看指定联系人

Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, info.id);//info.id联系人ID

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(personUri);

startActivity(intent);

                                

                                                                                                        

                        

                                                          

                                                                                                                                                                                                                

在进行Android开发的过程中,免不了,要开发TCP/UDP通讯的程序,下面这两段代码,分别介绍了TCP/UCP通过的一个实例:

代码一:
private void tcpdata() {

  try {

   Socket s = new Socket("192.168.0.25", 65500);

   // outgoing stream redirect to socket

   OutputStream out = s.getOutputStream();

   // 注意第二个参数据为true将会自动flush,否则需要需要手动操作out.flush()

   PrintWriter output = new PrintWriter(out, true);
   output.println("Hello IdeasAndroid! 伪IP为:"

     + SIMCardToIP("13512345006"));
   InputStream inputStream = s.getInputStream();
   DataInputStream input = new DataInputStream(inputStream);
   byte[] b = new byte[10000];
   int length = input.read(b);
   inputReader = new InputStreamReader(inputStream);
   String Msg = new String(b, 0, length, "gb2312");
   Toast.makeText(TcpTest.this, Msg, 1000).show();
   Log.d("Tcp Demo", "message From Server:" + Msg);

   s.close();
  } catch (UnknownHostException e) {

   e.printStackTrace();

  } catch (IOException e) {

   e.printStackTrace();

  }

}

下面的代码是UDP通讯的过程:

public String send(String msg) {

  StringBuilder sb = new StringBuilder();

  InetAddress local = null;

  try {

   local = InetAddress.getByName("192.168.0.25"); // 本机测试

  

  } catch (UnknownHostException e) {

   

   e.printStackTrace();

  }

  try {

   dSocket = new DatagramSocket(); // 注意此处要先在配置文件里设置权限,否则会抛权限不足的异常

   

  } catch (SocketException e) {

   e.printStackTrace();

   

  }

  int msg_len = msg == null ? 0 : msg.length();

  DatagramPacket dPacket = new DatagramPacket(msg.getBytes(), msg_len,

    local, SERVER_PORT);

  try {

   dSocket.send(dPacket);

   

  } catch (IOException e) {

   e.printStackTrace();

   

  }

  try {  

   dSocket.receive(dPacket);

   sb.append(new String(dPacket.getData()));

  } catch (IOException e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

  dSocket.close();

  return sb.toString();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息