张萌&韩墨羽——SurfaceView使用

SurfaceView使用

要求

调用系统相机实施自拍并保存到本地
调用系统摄像机,录制音视频并保存到本地
调用系统浏览器,完成搜索java
打开蓝牙,显示搜索到附近的蓝牙列表
截图蓝牙列表,保存到本地
获取本机蓝牙信息,保存到txt
实现关闭蓝牙
实现一键拨打10086

效果

在这里插入图片描述

代码

package com.example.uri_use;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.FileProvider;

import android.Manifest;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";
    private ListView listId;
    BluetoothAdapter adapter;
    private List<BluetoothDevice> devices=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listId = findViewById(R.id.list_id);

        MyReceive myReceive = new MyReceive();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(BluetoothDevice.ACTION_FOUND);
        intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
        registerReceiver(myReceive,intentFilter);


        String[] s = {
                Manifest.permission.INTERNET,
                Manifest.permission.BLUETOOTH,
                Manifest.permission.BLUETOOTH_ADMIN,
                Manifest.permission.ACCESS_COARSE_LOCATION,
                Manifest.permission.ACCESS_FINE_LOCATION,
                Manifest.permission.CALL_PHONE,
                Manifest.permission.READ_EXTERNAL_STORAGE,
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
                Manifest.permission.CAMERA
        };
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
            requestPermissions(s,100);
        }

        BluetoothManager manager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE);
        adapter = manager.getAdapter();
    }

    public void Zipai(View view) {
        Intent intent = new Intent();
        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
        File path = new File(Environment.getExternalStorageDirectory() + "/11254698.png");
        Uri uriForFile = FileProvider.getUriForFile(this, "com.example.uri_use.fileProvider", path);
        intent.putExtra(MediaStore.EXTRA_OUTPUT,uriForFile);
        startActivity(intent);
    }

    public void Video(View view) {
        Intent intent = new Intent();
        intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
        startActivity(intent);
    }

    public void Inter(View view) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        Uri parse = Uri.parse("https://www.baidu.com");
        intent.setData(parse);
        startActivity(intent);
    }

    public void bluetooth(View view) {
        Intent intent = new Intent();
        intent.setAction(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        intent.setAction(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
        startActivity(intent);
    }

    public void select(View view) {
        adapter.startDiscovery();
    }

    class MyReceive extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(BluetoothDevice.ACTION_FOUND)){
                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                String name = device.getName();
                if (name!=null){
                    Log.i(TAG, "onReceive: "+name);
                    devices.add(device);
                }
            }else if(intent.getAction().equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)){
                MyAdapter myAdapter = new MyAdapter();
                listId.setAdapter(myAdapter);
                Log.i(TAG, "onReceive: 搜索完成");
                myAdapter.notifyDataSetChanged();
            }
        }
    }
    class MyAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return devices.size();
        }

        @Override
        public Object getItem(int position) {
            return devices.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            HodelView hodelView;
            if (convertView==null){
                convertView= LayoutInflater.from(MainActivity.this).inflate(R.layout.bluetooths,null);
                hodelView=new HodelView();
                hodelView.name=convertView.findViewById(R.id.blue_name);
                convertView.setTag(hodelView);
            }else{
                hodelView = (HodelView) convertView.getTag();
            }
            hodelView.name.setText(devices.get(position).getName());
            return convertView;
        }
        class HodelView{
            TextView name;
        }
    }

    public void Jpic(View view) {
        View decorView = getWindow().getDecorView();
        decorView.setDrawingCacheEnabled(true);
        Bitmap bitmap = decorView.getDrawingCache();
        try {
            bitmap.compress(Bitmap.CompressFormat.PNG,100,new FileOutputStream(Environment.getExternalStorageDirectory()+"/11254699.png"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    public void Name(View view) {
        StringBuilder sb = new StringBuilder();
        String name = adapter.getName();
        String address = adapter.getAddress();

        sb.append(name+"-"+address+"\n");
        String string = sb.toString();
        try {
            FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory() + "/11254670.txt");
            out.write(string.getBytes());
            out.flush();
            out.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void Close(View view) {
        adapter.disable();
    }

    public void Open_phone(View view) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_CALL);
        String phone="tel:"+"13064829676";
        Uri parse = Uri.parse(phone);
        intent.setData(parse);
        startActivity(intent);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值