/**
* 为程序创建桌面快捷方式
*/
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);
int width = dm.widthPixels;
int height = 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:[email protected] ");
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, "[email protected] ");
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={"[email protected] "};
3. String[] ccs={"[email protected] "};
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, "[url=]file:///sdcard/mysong.mp3[/url]");
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("[url=]file:///sdcard/song.mp3[/url]");
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("[url=]file:///sdcard/download/everything.mp3[/url]");
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, "[url=]file:///sdcard/eoe.mp3[/url]");
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();
}