Android手机——读取手机电话+短信+网页+图片+音乐+视频+APK+通知栏消息+换头像
来源:互联网 发布:怎么运营好淘宝店铺 编辑:程序博客网 时间:2024/04/28 18:20
Android手机——电话+短信+网页+图片+音乐+视频+APK+通知栏消息+换头像
<!--拨打电话权限-->
<uses-permissionandroid:name="android.permission.CALL_PHONE"/>
<!--连接网络权限-->
<uses-permissionandroid:name="android.permission.INTERNET"/>
<!--读写文件的权限-->
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
package com.example.jreduch06;import android.Manifest;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.content.pm.PackageManager;import android.database.Cursor;import android.graphics.Bitmap;import android.graphics.drawable.ColorDrawable;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.support.v4.app.ActivityCompat;import android.support.v4.app.NotificationCompat;import android.support.v7.app.AppCompatActivity;import android.view.Gravity;import android.view.View;import android.view.WindowManager;import android.widget.Button;import android.widget.LinearLayout;import android.widget.PopupWindow;import java.io.File;public class MyIntentActivity extends AppCompatActivity implements View.OnClickListener { private PopupWindow pw; private View popView; private RoundImageView riv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_intent); //加载PopWindow中的布局 popView = getLayoutInflater().inflate(R.layout.pop_layout, null); //从主布局中取得控件 Button bt1 = (Button) findViewById(R.id.bt1); Button bt2 = (Button) findViewById(R.id.bt2); Button bt3 = (Button) findViewById(R.id.bt3); Button bt4 = (Button) findViewById(R.id.bt4); Button bt5 = (Button) findViewById(R.id.bt5); Button bt6 = (Button) findViewById(R.id.bt6); Button bt7 = (Button) findViewById(R.id.bt7); Button bt8 = (Button) findViewById(R.id.bt8); //从PopWindow布局中取得控件 Button xc = (Button)popView.findViewById(R.id.xc); Button xj = (Button)popView.findViewById(R.id.xj); Button bt = (Button)popView.findViewById(R.id.bt); riv = (RoundImageView) findViewById(R.id.riv); //注册 本类监听 bt1.setOnClickListener(this); bt2.setOnClickListener(this); bt3.setOnClickListener(this); bt4.setOnClickListener(this); bt5.setOnClickListener(this); bt6.setOnClickListener(this); bt7.setOnClickListener(this); bt8.setOnClickListener(this); riv.setOnClickListener(this); xc.setOnClickListener(this); xj.setOnClickListener(this); bt.setOnClickListener(this); //显示Intent,明确指定要跳转的组件// Intent intent=new Intent(IntentActivity.this,SecondActivity.class);// startActivity(intent); //--------------------------------------- } @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.bt1: //隐式Intent 由Android系统帮助匹配 //匹配规则 清单文件中的Intent-filter标签中的action Uri uri1 = Uri.parse("tel:188655555555"); Intent intent = new Intent(Intent.ACTION_CALL, uri1); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } startActivity(intent); break; case R.id.bt2: Intent it1=new Intent(Intent.ACTION_VIEW); it1.putExtra("sms_body", "代开发票"); it1.putExtra("sms_to", "10086"); it1.setType("vnd.android-dir/mms-sms"); startActivity(it1); break; case R.id.bt3: Uri uri2=Uri.parse("http://www.baidu.com"); Intent it2=new Intent(Intent.ACTION_VIEW,uri2); startActivity(it2); break; case R.id.bt4: Intent it3=new Intent(Intent.ACTION_VIEW); File file=new File("/sdcard/zyfzyf/Ifyou.aac"); it3.setDataAndType(Uri.fromFile(file), "audio/*"); startActivity(it3); break; case R.id.bt5: Intent it5=new Intent(Intent.ACTION_VIEW); File file1=new File("/sdcard/DCIM/Camera/IMG_20150613_103420.jpg"); it5.setDataAndType(Uri.fromFile(file1), "image/*"); startActivity(it5); break; case R.id.bt6: Intent it4=new Intent(Intent.ACTION_VIEW); File file2=new File("/sdcard/DCIM/Camera/VID_20150703_195112.mp4"); it4.setDataAndType(Uri.fromFile(file2), "video/*"); startActivity(it4); break; case R.id.bt7: Intent it6=new Intent(Intent.ACTION_VIEW); it6.setDataAndType(Uri.parse("file:///sdcard/Android/data/com.sankuai.meituan/files/group_meituan.apk"), "application/vnd.android.package-archive"); startActivity(it6); break; case R.id.bt8: notification(); break; case R.id.riv://点击头像打开PopWindow pw=getPopWindow(popView); break; case R.id.xc: phonePhoto(); break; case R.id.xj: takephoto(); break; case R.id.bt: pw.dismiss(); break; } } //消息栏通知 public void notification(){ //先定义一个Intent Intent intent=new Intent(this,SecondActivity.class); //使用PendingIntent 封装Intent /* *PendingIntent的第四个参数的说明: * 常量: * FLAG_CANCEL_CURRENT 生成一个新的对象 * FLAG_NO_CREATE若不存在,则创建一个新的对象 * FLAG_ONE_SHOT创建的对象只能使用一次 * FLAG_UPDATE_CURRENT已存在则直接使用 * */ PendingIntent pi=PendingIntent.getActivities( this,0, new Intent[]{intent},PendingIntent.FLAG_UPDATE_CURRENT); //获取通知服务 NotificationManager nm= (NotificationManager) getSystemService(Activity.NOTIFICATION_SERVICE); //构建一个通知 Notification notification=new NotificationCompat.Builder(this) .setSmallIcon(R.mipmap.ic_launcher) .setTicker("A") .setContentInfo("我是通知栏消息") .setContentTitle("奥运会") .setContentText("PendingIntent的使用方法") .setAutoCancel(true) .setDefaults(Notification.DEFAULT_ALL) .setContentIntent(pi) .build(); //通过通知服务,显示通知 nm.notify(0, notification); } /* * 调用图库 * */ public void phonePhoto(){ Intent intent=new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent,2); } /* * 调用相机 * */ private String capturePath=""; public void takephoto(){ Intent camera=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); File parent= FileUitlity.getInstance(getApplicationContext()) .makeDir("head_imag"); capturePath=parent.getPath()+File.separatorChar+System.currentTimeMillis()+".jpg"; camera.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(capturePath))); camera.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1); startActivityForResult(camera, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode!=Activity.RESULT_OK){ return; } //相机返回结果,调用系统裁剪啊 if (requestCode==1){ startPicZoom(Uri.fromFile(new File(capturePath))); } //相册返回结果调用系统裁剪 else if (requestCode==2){ Cursor cursor=getContentResolver() .query(data.getData(),new String[]{MediaStore.Images.Media.DATA} ,null,null,null); cursor.moveToFirst(); String capturePath=cursor.getString( cursor.getColumnIndex( MediaStore.Images.Media.DATA)); cursor.close(); startPicZoom(Uri.fromFile(new File(capturePath))); } else if (requestCode==3){ Bundle bundle= data.getExtras(); if (bundle!=null){ Bitmap bitmap=bundle.getParcelable("data"); riv.setImageBitmap(bitmap); } } } /* 调用系统裁剪功能 */ public void startPicZoom(Uri uri){ Intent intent=new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri,"image/*"); intent.putExtra("crop","true");//允许裁剪 intent.putExtra("aspectX",1);//设置裁剪比例 intent.putExtra("aspectY",1); //设置图片宽度高度 intent.putExtra("outputX",150); intent.putExtra("outputY",150); intent.putExtra("return-data",true); startActivityForResult(intent,3); } //设置屏幕背景透明度方法 public void backgroundAlpha(float bgAlpha){ WindowManager.LayoutParams ll=getWindow().getAttributes(); ll.alpha=bgAlpha; getWindow().setAttributes(ll); } //构建一个PopWindow public PopupWindow getPopWindow(View view){ PopupWindow popupWindow=new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT,true); // popupWindow.setFocusable(true); //点击pop外面是否消失 popupWindow.setOutsideTouchable(true); popupWindow.setAnimationStyle(R.style.popStyle); //设置背景透明度 backgroundAlpha(0.3f); //———————— //设置View隐藏 riv.setVisibility(View.GONE); popupWindow.setBackgroundDrawable(new ColorDrawable()); popupWindow.showAtLocation(riv, Gravity.BOTTOM, 0, 0); popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { //设置背景透明度 backgroundAlpha(1f); //设置View可见 riv.setVisibility(View.VISIBLE); } }); return popupWindow; }}
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.jreduch06.IntentActivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt1" android:layout_below="@+id/riv" android:text="拨打电话" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt2" android:text="发送短信" android:layout_below="@+id/bt1" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt3" android:text="打开网页" android:layout_below="@+id/bt2" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt4" android:text="播放音乐" android:layout_below="@+id/bt3" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt5" android:text="打开图片" android:layout_below="@+id/bt4" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt6" android:text="播放视频" android:layout_below="@+id/bt5" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt7" android:text="安装APK" android:layout_below="@+id/bt6" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt8" android:text="通知栏消息" android:layout_below="@+id/bt7" /> <com.example.jreduch06.RoundImageView android:layout_width="60dp" android:layout_height="60dp" android:id="@+id/riv" android:src="@mipmap/zyf" android:background="#082fef" /></RelativeLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="150dp" android:background="#111111" > <Button android:layout_width="300dp" android:layout_height="wrap_content" android:id="@+id/xj" android:layout_weight="1" android:gravity="center" android:layout_marginLeft="40dp" android:text="相机" android:textSize="30sp" /> <Button android:layout_width="300dp" android:layout_height="wrap_content" android:id="@+id/xc" android:text="相册" android:textSize="30sp" android:layout_weight="1" android:gravity="center" android:layout_marginLeft="40dp" /> <Button android:layout_width="300dp" android:layout_height="wrap_content" android:id="@+id/bt" android:text="退出" android:gravity="center" android:layout_marginLeft="40dp" android:textSize="30sp" android:layout_weight="1" /></LinearLayout>
工具代码
<span style="font-size:18px;">package com.example.jreduch06;import android.content.Context;import android.os.Environment;import java.io.File;public class FileUitlity {public final static String USER_HAED="head";private static String ROOT_CACHE;public static String ROOT_DIR="yt_xyt";private static FileUitlity instance = null;private FileUitlity() {}public static FileUitlity getInstance(Context context) {if (instance == null) {if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {ROOT_CACHE = (Environment.getExternalStorageDirectory() + "/"+ ROOT_DIR + "/");} else {ROOT_CACHE = (context.getFilesDir().getAbsolutePath() + "/"+ROOT_DIR+"/");}File dir = new File(ROOT_CACHE);if (!dir.exists()) {dir.mkdirs();}instance = new FileUitlity();}return instance;}public File makeDir(String dir) {File fileDir = new File(ROOT_CACHE + dir);if (fileDir.exists()) {return fileDir;} else {fileDir.mkdirs();return fileDir;}}}</span>
<span style="font-size:18px;">package com.example.jreduch06;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PixelFormat;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;public class RoundImageView extends ImageView {public RoundImageView(Context context) {super(context);// TODO Auto-generated constructor stub}public RoundImageView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub}public RoundImageView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stub}@Overrideprotected void onDraw(Canvas canvas) {Drawable drawable = getDrawable();if (drawable == null) {return;}if (getWidth() == 0 || getHeight() == 0) {return;}Bitmap b = null;if(drawable instanceof BitmapDrawable){b = ((BitmapDrawable) drawable).getBitmap();}else if(drawable instanceof Drawable){b = Bitmap.createBitmap( getWidth(), getHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas1 = new Canvas(b); // canvas.setBitmap(bitmap); drawable.setBounds(0, 0, getWidth(), getHeight()); drawable.draw(canvas1); }if (null == b) {return;}Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);int w = getWidth(), h = getHeight();Bitmap roundBitmap = getCroppedBitmap(bitmap, w);canvas.drawBitmap(roundBitmap, 0, 0, null);}public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) {Bitmap sbmp;if (bmp.getWidth() != radius || bmp.getHeight() != radius)sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false);elsesbmp = bmp;Bitmap output = Bitmap.createBitmap(sbmp.getWidth(), sbmp.getHeight(),Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(output);final int color = 0xffa19774;final Paint paint = new Paint();final Rect rect = new Rect(0, 0, sbmp.getWidth(), sbmp.getHeight());paint.setAntiAlias(true);paint.setFilterBitmap(true);paint.setDither(true);canvas.drawARGB(0, 0, 0, 0);paint.setColor(Color.parseColor("#BAB399"));canvas.drawCircle(sbmp.getWidth() / 2 + 0.7f,sbmp.getHeight() / 2 + 0.7f, sbmp.getWidth() / 2 + 0.1f, paint);paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));canvas.drawBitmap(sbmp, rect, rect, paint);return output;}}</span>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><alpha android:fromAlpha="0" android:toAlpha="1" android:duration="3000" ></alpha></set>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="1" android:toAlpha="0" android:duration="3000" ></alpha></set>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="3000" /> <alpha android:fromAlpha="0" android:toAlpha="1" android:duration="3000" ></alpha></set>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="3000" /> <alpha android:fromAlpha="1" android:toAlpha="0" android:duration="3000" ></alpha></set>
作者:冲天之峰 20160810
3 0
- Android手机——读取手机电话+短信+网页+图片+音乐+视频+APK+通知栏消息+换头像
- Android----Intent,运用由android系统帮助匹配实现打电话、发送短信、打开网页、播放音乐、打开视频、打开图片、安装APK、通知栏消息、拍照上传头像等功能
- Android 读取手机音乐,视频,图片
- 我的Android之旅(九)---Android读取电话,短信,网页,音乐等
- Android读取手机中的短信
- Android 上传图片/头像——取得手机内的图片或拍照取得图片
- android手机创建图片,头像缓存
- android获取手机联系人信息(电话,邮箱,姓名,头像)
- android读取手机本地图片
- Android读取音乐视频图片文件
- Android 手机应用开发经验 之电话与短信服务
- 手机联系人信息获取(头像,电话,姓名)
- Android项目:手机安全卫士(12)—— 通讯卫士之电话短信黑名单设置与拦截
- Android项目:手机安全卫士(12)—— 通讯卫士之电话短信黑名单设置与拦截
- android 手机收起通知栏
- 基于Android的短信应用开发(二)——读取手机联系人
- 手机访问网页拨打电话
- 从手机网页拨打电话
- android 仿去哪儿首页效果
- Zxing二维码开发随笔
- 安装ganglia及监控haoop
- xdebug配置
- 设计模式总结之Proxy Pattern(代理模式)
- Android手机——读取手机电话+短信+网页+图片+音乐+视频+APK+通知栏消息+换头像
- EventBus使用及简析
- iOS开发-警告收录及科学快速的消除方法
- TOMCAT-SSL双向认证-配置实例
- 隐式Intent跳转
- String, StringBuffer, StringBuilder
- java 判断邮箱和手机
- POJ 1988 Cube Stacking(带权并查集)
- Android版本检测更新