码迷,mamicode.com
首页 > 移动开发 > 详细

Android手机——读取手机电话+短信+网页+图片+音乐+视频+APK+通知栏消息+换头像

时间:2016-08-10 19:32:17      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:

Android手机——电话+短信+网页+图片+音乐+视频+APK+通知栏消息+换头像


<!--拨打电话权限-->
 
<uses-permission android:name="android.permission.CALL_PHONE"/>
 <!--连接网络权限-->
 
<uses-permission android:name="android.permission.INTERNET"/>
 <!--读写文件的权限-->
 
<uses-permission android: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
	}

	@Override
	protected 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);
		else
			sbmp = 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

Android手机——读取手机电话+短信+网页+图片+音乐+视频+APK+通知栏消息+换头像

标签:

原文地址:http://blog.csdn.net/zhangyufeng0126/article/details/52174576

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!