安卓开发经验总结2 API权限错误提示解决方法:
报这么一个错误:
[html] view plaincopyprint?
1. Call requires API level 11 (current min is 8): android.animation.ObjectAnimator#ofFloat
主要原因是 AndroidManifest.xml中的API权限等级不够:
[html] view plaincopyprint? 1. <uses-sdk
2. android:minSdkVersion="8"
3. android:targetSdkVersion="17" />
修改成:
[html] view plaincopyprint? 1. <uses-sdk
2. android:minSdkVersion="11"
3. android:targetSdkVersion="17" />
获取手机号码:
[java] view plaincopyprint? 1. //创建电话管理
2.
3. TelephonyManager tm = (TelephonyManager)
4.
5. //与手机建立连接
6. activity.getSystemService(Context.TELEPHONY_SERVICE); 7.
8. //获取手机号码
9.
10. String phoneId = tm.getLine1Number();
11.
12. //记得在manifest file中添加
13. <uses-permission
14. android:name="android.permission.READ_PHONE_STATE" />
15.
16. //程序在模拟器上无法实现,必须连接手机
格式化string.xml 中的字符串
[java] view plaincopyprint?
1. // in strings.xml..
2. <string name="my_text">Thanks for visiting %s. You age is %d!</string> 3.
4. // and in the java code:
5. String.format(getString(R.string.my_text), "oschina", 33);
android设置全屏的方法
[java] view plaincopyprint?
1. requestWindowFeature(Window.FEATURE_NO_TITLE);
2. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
3. WindowManager.LayoutParams.FLAG_FULLSCREEN);
检查当前网络是否连上
[java] view plaincopyprint? 1. ConnectivityManager con=(ConnectivityManager)getSystemService(Activity.CONNECTIVITY_SERVICE);
2.
3. boolean wifi=con.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnect
edOrConnecting();
4.
5. boolean internet=con.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isC
onnectedOrConnecting();
在AndroidManifest.xml 增加权限:
[java] view plaincopyprint? 1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
/>
检测某个Intent是否有效
[java] view plaincopyprint? 1. public static boolean isIntentAvailable(Context context, String action)
{
2. final PackageManager packageManager = context.getPackageManager(); 3. final Intent intent = new Intent(action);
4. List<ResolveInfo> list =
5. packageManager.queryIntentActivities(intent,
6. PackageManager.MATCH_DEFAULT_ONLY);
7. return list.size() > 0;
8. }
android 拨打电话
[java] view plaincopyprint?
1. try { 2. Intent intent = new Intent(Intent.ACTION_CALL);
3. intent.setData(Uri.parse("tel:+110"));
4. startActivity(intent);
5. } catch (Exception e) {
6. Log.e("SampleApp", "Failed to invoke call", e);
7. }
android中发送Email
[java] view plaincopyprint?
1. Intent i = new Intent(Intent.ACTION_SEND);
2. //i.setType("text/plain"); //模拟器请使用这行
3. i.setType("message/rfc822") ; // 真机上使用这行
4. i.putExtra(Intent.EXTRA_EMAIL, new String[]{"test@gmail.com","test@163.c
om});
5. i.putExtra(Intent.EXTRA_SUBJECT,"subject goes here");
6. i.putExtra(Intent.EXTRA_TEXT,"body goes here");
7. startActivity(Intent.createChooser(i, "Select email application."));
android中打开浏览器
[java] view plaincopyprint? 1. Intent viewIntent = new
2. Intent("android.intent.action.VIEW",Uri.parse("http://vaiyanzi.cnblo
gs.com"));
3.
4. startActivity(viewIntent);
android 获取设备唯一标识码
[java] view plaincopyprint?
1. String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
android中获取IP地址
[java] view plaincopyprint? 1. public String getLocalIpAddress() {
2. try {
3. for (Enumeration<NetworkInterface> en = NetworkInterface.getNetw
orkInterfaces();
4. en.hasMoreElements();) {
5. NetworkInterface intf = en.nextElement();
6. for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddre
sses();
7. enumIpAddr.hasMoreElements();) {
8. InetAddress inetAddress = enumIpAddr.nextElement();
9. if (!inetAddress.isLoopbackAddress()) {
10. return inetAddress.getHostAddress().toString();
11. }
12. }
13. }
14. } catch (SocketException ex) {
15. Log.e(LOG_TAG, ex.toString());
16. }
17. return null;
18. }
android获取存储卡路径以及使用情况
[java] view plaincopyprint? 1. /** 获取存储卡路径 */
2. File sdcardDir=Environment.getExternalStorageDirectory(); 3. /** StatFs 看文件系统空间使用情况 */
4. StatFs statFs=new StatFs(sdcardDir.getPath());
5. /** Block 的 size*/
6. Long blockSize=statFs.getBlockSize();
7. /** 总 Block 数量 */
8. Long totalBlocks=statFs.getBlockCount();
9. /** 已使用的 Block 数量 */
10. Long availableBlocks=statFs.getAvailableBlocks();
android中添加新的联系人
[java] view plaincopyprint?
1. private Uri insertContact(Context context, String name, String phone) {
2.
3. ContentValues values = new ContentValues();
4. values.put(People.NAME, name);
5. Uri uri = getContentResolver().insert(People.CONTENT_URI, values)
;
6. Uri numberUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_D
IRECTORY);
7. values.clear();
8.
9. values.put(Contacts.Phones.TYPE, People.Phones.TYPE_MOBILE);
10. values.put(People.NUMBER, phone);
11. getContentResolver().insert(numberUri, values);
12.
13. return uri; 14. }
查看电池使用情况 [java] view plaincopyprint?
1. Intent intentBatteryUsage = new Intent(Intent.ACTION_POWER_USAGE_SUMMARY
);
2. startActivity(intentBatteryUsage);
获取进程号
[java] view plaincopyprint? 1. ActivityManager mActivityManager = (ActivityManager) this.getSystemServi
ce(ACTIVITY_SERVICE);
2. List<ActivityManager.RunningAppProcessInfo> mRunningProcess = mActivityM
anager.getRunningAppProcesses();
3. int i = 1;
4. for (ActivityManager.RunningAppProcessInfo amProcess : mRunningProcess)
5. {
6. Log.e("homer Application", (i++) + " PID = " + amProcess.pid + ";
7. processName = " + amProcess.processName);
8. }
android 之setOutsideTouchable
在使用弹出框希望点击弹出框外的任意处让弹出框消失,
先把设置弹出框的setOutsideTouchable为true,然后重写onTouch。
[java] view plaincopyprint?
1. win = new PopupWindow(contentView, LayoutParams.FILL_PARENT,
2. LayoutParams.WRAP_CONTENT);
3. win.setOutsideTouchable(true);
4. win.setFocusable(true);
5.
6. // 点击弹出窗口区域之外的任意区域,则该窗口关闭
7. win.setTouchInterceptor(new OnTouchListener() {
8. @Override
9. public boolean onTouch(View v, MotionEvent event) {
10. if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
11. win.dismiss();
12. return true;
13. }
14. return false;
15. }
16. });
android 获取资源文件
[java] view plaincopyprint?
1. Resources myResources = getResources();
2.
3. String str = myResources.getString(R.string.app_name);
4. myResources.getDrawable(R.drawable.jhs_button1_h);
打开播放器
[java] view plaincopyprint?
1. am start -a android.intent.action.VIEW -t video/* -d 'url地址'
px转pd
[java] view plaincopyprint?
1. private int getPixels(int dipValue) {
2. Resources r = getResources();
3. int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP
, dipValue, r.getDisplayMetrics());
4. return px;
5. }
动态修改ImageView的长宽
[java] view plaincopyprint? 1. ImageView imageView = (ImageView) findViewById(R.id.videoImage1);
2. LayoutParams para = imageView.getLayoutParams();
3. para.height = getPixels(180);
4. para.width = getPixels(120); 5. imageView.setLayoutParams(para);
动态设置padding
[java] view plaincopyprint?
1. ImageView imageView = new ImageView(this);
2. imageView.setPadding(5,5,5,5)
动态设置margin
[java] view plaincopyprint? 1. //设置margin
2. LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearL
ayout.LayoutParams.WRAP_CONTENT,
3. LinearLayout.LayoutParams.WRAP_CONTENT);
4. params.setMargins(0, getPixels(13), 0, 0);
显示网络图片
[java] view plaincopyprint?
1. public Bitmap returnBitMap(String url){
2. URL myFileUrl = null;
3. Bitmap bitmap = null;
4. try {
5. myFileUrl = new URL(url);
6. } catch (MalformedURLException e) {
7. e.printStackTrace();
8. }
9. try {
10. HttpURLConnection conn = (HttpURLConnection) myFileUrl
11. .openConnection();
12. conn.setDoInput(true);
13. conn.connect(); 14. InputStream is = conn.getInputStream();
15. bitmap = BitmapFactory.decodeStream(is);
16. is.close();
17. } catch (IOException e) {
18. e.printStackTrace();
19. }
20. return bitmap;
21. }
22.
23. :
24. ImageView imageView = (ImageView) findViewById(R.id.imageView);
25. String url = "/img/bdlogo.gif";
26. imageView.setImageBitmap(returnBitMap(url));
删除APK
[java] view plaincopyprint?
1. Uri uri =Uri.fromParts("package", strPackageName, null);
2. Intent it = newIntent(Intent.ACTION_DELETE, uri);
3. startActivity(it);
安装APK
[java] view plaincopyprint?
1. Uri installUri = Uri.fromParts("package","xxx", null);
2. returnIt = newIntent(Intent.ACTION_PACKAGE_ADDED, installUri);
px和dp互转
[java] view plaincopyprint? 1. public static int dip2px(Context context, float dipValue){
2. final float scale = context.getResources().getDisplayMetrics().density;
3. return (int)(dipValue * scale + 0.5f);
4. }
5.
6. public static int px2dip(Context context, float pxValue){
7. final float scale = context.getResources().getDisplayMet
rics().density;
8. return (int)(pxValue / scale + 0.5f);
9. }
动态添加View
[java] view plaincopyprint? 1. ViewGroup viewGroup = (ViewGroup) getLayoutInflater().inflate(R.layout.m
ain, null);
2. setContentView(viewGroup);
3. Button button = new Button(this);
4. button.setText("Heklki"); 5. viewGroup.addView(button);
6.
7. Button button2 = new Button(this);
8. button.setText("Heklki2");
9. button.setPadding(100, 100, 100, 100);
10. viewGroup.addView(button2);
自定义View中,布局资源使用方法
[java] view plaincopyprint?
1. LayoutInflater i = (LayoutInflater) getContext().getSystemService(Contex
t.LAYOUT_INFLATER_SERVICE);
include方法导入公用xml [html] view plaincopyprint?
1. <include layout="@layout/test_f"/>
也可以带上ID
[html] view plaincopyprint? 1. <include
2. android:id="@+id/test2"
3. android:layout_height="match_parent"
4. android:layout_width="wrap_content"
5. layout="@layout/test" />
如果被导入的xml中,有merge标签,则是合并进来,效率会更加高
[html] view plaincopyprint? 1. <merge xmlns:android="/apk/res/android" > 2.
3. <LinearLayout
4. android:id="@+id/test"
5. android:layout_width="wrap_content"
6. android:layout_height="wrap_content"
7. android:orientation="horizontal" >
8.
9. <ImageView
10. android:id="@+id/imageView1"
11. android:layout_width="40dp"
12. android:layout_height="40dp"
13. android:layout_alignParentLeft="true"
14. android:layout_alignParentTop="true"
15. android:src="@drawable/ic_launcher" />
16.
17. <Button
18. android:id="@+id/button1"
19. android:layout_width="wrap_content"
20. android:layout_height="wrap_content"
21. android:text="Button" />
22. </LinearLayout>
23.
24. </merge>
解决TableRow中无法显示ImageView的图片问题
[java] view plaincopyprint? 1. LinearLayout layout = (LinearLayout)findViewById(R.id.a);
2. TableLayout tableLayout = new TableLayout(this);
3. LinearLayout layout1 = new LinearLayout(this);
4. TableRow row = new TableRow(this);
5. ImageView img = new ImageView(this);
6. Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/a.pn
g");//从本地取图片
7. img.setLayoutParams(new LayoutParams(100,100));
8. Drawable drawable = new BitmapDrawable(bitmap);
9. img.setImageDrawable(drawable);
10. img.setAlpha(255);
11. System.out.println(drawable);
12. System.out.println(img.getDrawable());
13. layout1.addView(img);
14. row.addView(layout1);
15. tableLayout.addView(row);
16. layout.addView(tableLayout);
row和imageView之间加上 linearLayout
ScrollView完全禁止焦点点击上去,需要在代码中设置false
[java] view plaincopyprint?
1. //禁止焦点
2. sc.setFocusable(false);
3. sc.setFocusableInTouchMode(false);
跨应用调用
[java] view plaincopyprint?
1. Intent intent = new Intent();
2. intent.setClassName("com.xxx.xxx", "com.xxx.xxx.xxxIndex");
3. startActivity(intent);
XML中自定义焦点移动方向
[java] view plaincopyprint? 1. <Button
2. style="@style/clockFaceNum"
3. android:text="11"
4. android:id="@+id/button11"
5. android:layout_below="@+id/button12"
6. android:layout_toLeftOf="@+id/button12"
7. android:nextFocusUp="@+id/button10"
8. android:nextFocusLeft="@+id/button10"
9. android:nextFocusRight="@+id/button12"
10. android:nextFocusDown="@+id/button12">
11. </Button>
[java] view plaincopyprint?
1. View.setNextFocusDownId //设置向下焦点
2. View.setNextFocusLeftId //向左
3. View.setNextFocusUpId //设置向上
4. View.setNextFocusRightId //向右
判断EditView值为空
[java] view plaincopyprint?
1. TextUtils.isEmpty(edit.getText()) //为空的判断
2. TextUtils.isEmpty(edit.getText().toString().trim()) //去掉空格
接收短信代码
[java] view plaincopyprint?
1. public class SMSReceiver extends BroadcastReceiver
2. {
3. /*当收到短信时,就会触发此方法*/
4. public void onReceive(Context context, Intent intent)
5. {
6. Bundle bundle = intent.getExtras();
7. Object messages[] = (Object[]) bundle.get( "pdus");
8. SmsMessage smsMessage[] = new SmsMessage[messages.length];
9. for (int n = 0; n < messages.length; n++)
10. {
11. smsMessage[n] = SmsMessage.createFromPdu(( byte[]) mes
sages[n]);
12. } 13. //产生一个Toast
14. Toast toast = Toast.makeText(context, "短信内
容: " + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
15. //设置toast显示的位置
16. //toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 200);
17. //显示该Toast
18. toast.show();
19. }
20. }
XML中需要添加:
[html] view plaincopyprint?
1. <receiver android:name=".SMSReceiver" android:enabled="true">
2. <intent-filter>
3. <action android:name="android.provider.Telephony.SMS_RECEIVED
"/>
4. </intent-filter>
5. </receiver>
命令行常用命令
1. 启动模拟器
android源码目录下
. build/envsetup.sh
lunch 1
之后
emulator
即可启动模拟器
2. 命令行下看log
emulator起来后,用
adb logcat
即可看输出了,还可以加其他过滤选项
3. 命令行下安装应用
adb install ....apk
4. 命令行下进shell
adb shell
5. 模拟事件,发短信,打电话等
telnet localhos 5554
之后help看帮助
6. adb shell中看服务
service list
7. 新增一个系统应用
eclipse下的工程文件夹copy到packages/apps/目录下,增加Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SRC_FILES += \
src/com/example/hellodroid/FullscreenActivity.java \ src/com/example/hellodroid/util/SystemUiHiderBase.java \
src/com/example/hellodroid/util/SystemUiHiderHoneycomb.java \ src/com/example/hellodroid/util/SystemUiHider.java
LOCAL_PACKAGE_NAME := HelloDroid
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
# Build the test package
include $(call all-makefiles-under,$(LOCAL_PATH))
如果不想被打包安装到system/app下,
LOCAL_MODULE_TAGS := optional ----- LOCAL_MODULE_TAGS := tests
即可.
快速编译的方法是
HelloDroid目录下
mm
命令即可
8. 安装apk错误类型
Failure [INSTALL_FAILED_DEXOPT]
表示没找到DEX,这个一般是系统应用编译后,直接装apk造成的,解决办法是:安装未优化的包
adb install out\target\product\generic\obj\APPS\HelloDroid_intermediates> package.apk.unaligned
Failure [INSTALL_FALIED_EXITS]
实际就是应用没变,删除 userdata.img即可
rm out/target/product/generic/userdata* -rf
Failure [INSTALL_FAILED_UID_CHANGED]
你以前安装过这个应用程序,到/data/data下删除完这个程序的包名对应的文件夹, 新安装的会另外生成uid。
装不上是因为检查到原来/data/data下的文件对应uid还是旧的
9. 编译目标可执行程序
Android.mk如下
#
# Copyright 2006 The Android Open Source Project #
# Android Asset Packaging Tool
#
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
nsurface.cpp
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)//include/ui \ ${LOCAL_PATH}//include/utils \ ${LOCAL_PATH}//include/gui \ external/skia/include/core \
external/skia/include/utils
LOCAL_SHARED_LIBRARIES := \
libcutils \
libutils \
libui \
libgui \
libskia
LOCAL_MODULE := nsurface
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
9. 快速编译一个模块
模块目录下 mm
10. 模拟器运行系统起不来
排除是修改错误之外,一般是userdata用户数据不一致了
删除userdata,重启模拟器即可
rm out/target/product/generic/userdata* -rf
常用字符串操作归纳
[html] view plaincopyprint? 1. //打印加入变量名的字符串
2. int count = 5;
3. String text = String. format(getResources().getString(R.string.flip_view
_apk_title),count); //这里的count就是替换里面的$d的值
4.
5. //找到count字符的位置并显示跟整个字符串不同的颜色
6. String str = count + "";
7. int index = text.indexOf(str);
8. int charCount = str.length();
9. SpannableStringBuilder style= new SpannableStringBuilder(text);
10. int color = 0xffff00ff;
11. style.setSpan( new ForegroundColorSpan(color),index,index+charCount,Span
nable.SPAN_EXCLUSIVE_INCLUSIVE);
12. TestView.setText(style);
13.
14. //不同大小的字体
15. SpannableStringBuilder style = new SpannableStringBuilder(version);
16. style.setSpan( new AbsoluteSizeSpan(bigSize), 0, 1, Spannable.SPAN_EXCLU
SIVE_INCLUSIVE );
17. style.setSpan( new AbsoluteSizeSpan(normalSize), 1, version.length(), Sp
annable.SPAN_EXCLUSIVE_INCLUSIVE);
18. verionNameView.setText(style);
19.
20. strings.xml设置
21. <string name="test_string">测试(%1$d个) </string>
22.
23. %1为第一次设置引用的设置
24. $d为显示的变量格式,为整型
25. $s为字符串型
26. $c等等
27.
28.
29. //打印两位数00
30. s = String.format("%02d", 1);
31. 格式化后s就是01
32.
33. //删除线,中划线
34. priceTextView.setText(Double.toString((6800 / 100.0)));
35. priceTextView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//删除
线
36. priceTextView.getPaint().setAntiAlias(true);//解决画到Bitmap上删除线的
字符矩齿的问题
37.
38. //打印小数点后两位
39. DecimalFormat mDecimalFormat;
40. mDecimalFormat = new DecimalFormat("#####.00");
41. mDecimalFormat.format((Double)(2000/ 1000.0);
获取屏幕分辨率
[java] view plaincopyprint?
1. 1. String str = "";
2. 2. DisplayMetrics dm = new DisplayMetrics();
3. 3. // getWindowManager().getDefaultDisplay().getMetrics(dm);
4. 4. dm = this.getApplicationContext().getResources().getDisplayMe
trics();
5. 5. int screenWidth = dm.widthPixels;
6. 6. int screenHeight = dm.heightPixels;
7. 7. float density = dm.density;
8. 8. float xdpi = dm.xdpi;
9. 9. float ydpi = dm.ydpi;
10. 10. str += "屏幕分辨率
为:" + dm.widthPixels + " * " + dm.heightPixels + "\n";
11. 11. str += "绝对宽
度:" + String.valueOf(screenWidth) + "pixels\n";
12. 12. str += "绝对高度:" + String.valueOf(screenHeight)
13. 13. + "pixels\n";
14. 14. str += "逻辑密度:" + String.valueOf(density)
15. 15. + "\n";
16. 16. str += "X 维 :" + String.valueOf(xdpi) + "像素每英尺\n";
17. 17. str += "Y 维 :" + String.valueOf(ydpi) + "像素每英尺\n"; 18. 18. Log.i("1", str);
使用代码画.9图
[java] view plaincopyprint?
1. NinePatchDrawable bg = (NinePatchDrawable)mContext.getResources().getDra
wable(R.drawable.item_bg);
2. bg.setBoundsint left, int top, int right, int bottom;
3. bg.draw(canvas);
防止应用挂后台后会再次启动新的应用
[java] view plaincopyprint? 1. 在应用的第一个activity的oncreate里面加入:
2. //当前activity为首页, 如果他前面还有其他的activity,说明用户按过home
键
3. //则无需跑初始化的界面逻辑
4. ActivityManager am = (ActivityManager) getSystemService( ACTIVIT
Y_SERVICE);
5. List<ActivityManager.RunningTaskInfo> tasklist = am.getRunningTa
sks(1);
6. ActivityManager.RunningTaskInfo runTask = tasklist.get(0);
7. int n = runTask.numActivities ;
8. if (n != 1) {
9. finish();
10. return ;
11. }
使用自定义字体
[java] view plaincopyprint? 1. // 得到TextView控件对象
2. TextView textView = (TextView) findViewById(R.id.custom);
3. // 将字体文件保存在assets/fonts/目录下,创建Typeface对象
4. Typeface typeFace = Typeface.createFromAsset(getAssets(),"fonts/DroidSan
sThai.ttf");
5. // 应用字体 6. textView.setTypeface(typeFace);
Intent几种用法总结
显示网页:
1. Uri uri = Uri.parse("");
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("/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);
实训报告姓名祝新学号1144131专业软件技术课程名称android实训项目名称闹铃指导教师王皓实训日期20xx年10月28日至2…
Android开发简介Android应用程序的五大基本组件Activity应用表示层基类Activity一个活动表示一个可视化的用…
如何获取标题栏和状态栏高度1获取状态栏高度decorView是window中的最顶层view可以从window中获取到decorV…
Android应用开发个人总结报告刚开始接触Android感觉到它很有意思在界面开发上和web也可以形成了相通的架构更加方便视觉上…
出来工作半年多了没啥好交代的就说说自己半年来的Android开发经历1IDE这半年来从Eclipse到AndroidStudio经…
《Android应用开发》个人总结报告一、项目简介:送祝福App是一款逢年过节为方便发送祝福信息的软件,并且介绍各种节日的相关情况…
Android曾经是一家创立于旧金山的公司的名字,该公司于20xx年x月份被Google收购,并从此踏上了飞速发展的道路。经过这几…
南昌中兴实习报告短短的一个月很快就过去了,在南昌中兴软件实训中心的实习就过去了。虽然只有短短的一个月,但我学到了许多知识,熟悉了软…
实训报告姓名祝新学号1144131专业软件技术课程名称android实训项目名称闹铃指导教师王浩实训日期年月日至年月日20xx年1…
实训报告姓名祝新学号1144131专业软件技术课程名称android实训项目名称闹铃指导教师王皓实训日期20xx年10月28日至2…