android---(actionBar)

这里写图片描述

这里写图片描述

 android.support.v7.app.ActionBar actionBar = getSupportActionBar();

        actionBar.hide();

这里写图片描述

这里写图片描述

//导航:
//主activity,也就是主页:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        android.support.v7.app.ActionBar actionBar = getSupportActionBar();

        actionBar.setHomeButtonEnabled(true);//图标启动

    }
  public void startActivity(View v){
        startActivity(new Intent(this, Main2Activity.class));
    }
}

//另一个activity:actionBarActivity已过时,使用AppCompatActivity
public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        ActionBar supportActionBar = getSupportActionBar();

        supportActionBar.setDisplayHomeAsUpEnabled(true);//向上导航
    }

//清单文件:
      <activity
            android:name=".Main2Activity"
            android:label="@string/title_activity_main2"
            android:parentActivityName=".MainActivity" >//指定上一层导航
            //兼容低版本
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
        </activity>
-----------------------------

//菜单文件:
 <item
        android:id="@+id/serch"
        android:icon="@android:drawable/ic_menu_search"
        android:orderInCategory="300"
        android:title="search"
        app:actionViewClass="android.support.v7.widget.SearchView"

        app:showAsAction="ifRoom|collapseActionView" />

    <item
        android:id="@+id/share"
        android:icon="@android:drawable/ic_menu_share"
        android:orderInCategory="400"
        app:showAsAction="ifRoom"
        android:title="share"
//使用app,而不是android,        app:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
----------------------

//activity类:
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        //获取搜索菜单项
        MenuItem item = menu.findItem(R.id.serch);
        //转化为搜索视图组件
        SearchView searchView = (SearchView) item.getActionView();

        //注册事件,获取输入的值
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {

                Toast.makeText(getApplicationContext(), query, Toast.LENGTH_LONG).show();

                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                return false;
            }
        });
=================================================

        //分享菜单项
        MenuItem shareItem = menu.findItem(R.id.share);
        //通过这个菜单得到分享组件提供者
        ShareActionProvider mShareActionProvider = (ShareActionProvider)
                MenuItemCompat.getActionProvider(shareItem);

        //分享的事件
                mShareActionProvider.setShareIntent(getDefaultIntent());

       return true;

    }
//启动所有可以分享的程序
    private Intent getDefaultIntent() {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/*");
        return intent;
    }

这里写图片描述

这里写图片描述

这里写图片描述

//选项卡:
//activity类:
public class MainActivity extends AppCompatActivity implements ActionBar.TabListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ActionBar actionBar = getSupportActionBar();

        //更改标题栏模式
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        //标题不显示
        actionBar.setDisplayShowTitleEnabled(false);

        //添加选项卡:
        actionBar.addTab(actionBar.newTab().setText("新闻").setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText("视屏").setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText("音乐").setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText("游戏").setTabListener(this));

    }
    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
        Toast.makeText(this,tab.getText(),Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {

    }
}

这里写图片描述

这里写图片描述

这里写图片描述

权限:
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />

   //电话服务管理的API方法
    public void testTelePhoneManager() {

        TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        System.out.print("电话状态:" + tm.getCallState());
        System.out.print("唯一的设备ID:" + tm.getDeviceId());
        System.out.print("设备的软件版本号:" + tm.getDeviceSoftwareVersion());
        System.out.print("手机号:" + tm.getLine1Number());
        System.out.print("获取ISO标准的国家码,即国际长途区号:" + tm.getLine1Number());
        System.out.print("当前使用的网络类型:" + tm.getNetworkType());
        System.out.print("手机类型:" + tm.getPhoneType());
        System.out.print("SIM的状态信息:" + tm.getSimState());
        System.out.print("唯一的用户ID:" + tm.getSubscriberId());
        System.out.print("SIM卡的序列号:" + tm.getSimSerialNumber());
        System.out.print("服务商名称:" + tm.getSimOperator());
    }
public class MainActivity extends AppCompatActivity {

    TextView t01;
    TextView t02;
    TextView t03;
    TextView t04;
    TextView t05;
    TextView t06;
    TextView t07;
    TextView t08;
    TextView t09;
    TextView t10;
    TextView t11;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        t01 = (TextView) findViewById(R.id.t01);
        t02 = (TextView) findViewById(R.id.t02);
        t03 = (TextView) findViewById(R.id.t03);
        t04 = (TextView) findViewById(R.id.t04);
        t05 = (TextView) findViewById(R.id.t05);
        t06 = (TextView) findViewById(R.id.t06);
        t07 = (TextView) findViewById(R.id.t07);
        t08 = (TextView) findViewById(R.id.t08);
        t09 = (TextView) findViewById(R.id.t09);
        t10 = (TextView) findViewById(R.id.t10);
        t11 = (TextView) findViewById(R.id.t11);

        testTelePhoneManager();
    }

    //电话服务管理的API方法
    public void testTelePhoneManager() {

        TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        t01.setText("电话状态:" + tm.getCallState());
        t02.setText("唯一的设备ID:" + tm.getDeviceId());
        t03.setText("设备的软件版本号:" + tm.getDeviceSoftwareVersion());
        t04.setText("手机号:" + tm.getLine1Number());
        t05.setText("获取ISO标准的国家码,即国际长途区号:" + tm.getLine1Number());
        t06.setText("当前使用的网络类型:" + tm.getNetworkType());
        t07.setText("手机类型:" + tm.getPhoneType());
        t08.setText("SIM的状态信息:" + tm.getSimState());
        t09.setText("唯一的用户ID:" + tm.getSubscriberId());
        t10.setText("SIM卡的序列号:" + tm.getSimSerialNumber());
        t11.setText("服务商名称:" + tm.getSimOperator());

        //监听打电话的状态;
        tm.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
    }


    //电话监听事件:
    private class MyPhoneStateListener extends PhoneStateListener {

        //电话监听状态:
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            super.onCallStateChanged(state, incomingNumber);

            switch (state) {
                case TelephonyManager.CALL_STATE_IDLE:
                    Toast.makeText(MainActivity.this, "挂机状态", Toast.LENGTH_LONG).show();
                    break;
                case TelephonyManager.CALL_STATE_RINGING:
                    Toast.makeText(MainActivity.this, "电话响铃状态", Toast.LENGTH_LONG).show();
                    break;
                case TelephonyManager.CALL_STATE_OFFHOOK:
                    Toast.makeText(MainActivity.this, "接听状态", Toast.LENGTH_LONG).show();
                    break;
            }
        }
    }
}

这里写图片描述

这里写图片描述

这里写图片描述

//来电显示:
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        testTelePhoneManager();
    }

    //电话服务管理的API方法
    public void testTelePhoneManager() {
        //测试来电显示,直接发送一个广播
        sendBroadcast(new Intent(this,PhoneListenerReceiver.class));

    }


//广播接书器:
public class PhoneListenerReceiver extends BroadcastReceiver {
    public PhoneListenerReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {

        //获取电话管理器对象,并注册监听器
        TelephonyManager tm = (TelephonyManager) context.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
        tm.listen(new MyPhoneStateListener(context), PhoneStateListener.LISTEN_CALL_STATE);
    }

    static WindowManager wm = null;

    private class MyPhoneStateListener extends PhoneStateListener {

        private Context context;
        TextView textView = null; //显示文字组件

        public MyPhoneStateListener(Context context) {
            this.context = context;
        }

        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            super.onCallStateChanged(state, incomingNumber);

            //响铃状态:
            if (state == TelephonyManager.CALL_STATE_RINGING) {

                //获取窗体对象
                wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

                //窗体参数对象
                WindowManager.LayoutParams params = new WindowManager.LayoutParams();

                //设置为一个浮动层
                params.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;

                //设置窗体为不能触摸和没有焦点的
                params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;

                params.width = WindowManager.LayoutParams.WRAP_CONTENT;
                params.height = WindowManager.LayoutParams.WRAP_CONTENT;

                textView = new TextView(context);
                textView.setText("当前电话号码:" + incomingNumber);

                wm.addView(textView, params); //添加浮动视图

                //挂机状态
            } else if (state == TelephonyManager.CALL_STATE_IDLE) {
                if (wm != null) {
                    wm.removeView(textView);
                    wm = null;
                }
            }

        }
    }


}


//配置清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.zhangjianbin.myapplication" >

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    //开机启动
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

   //实现悬浮窗口
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <receiver
            android:name=".PhoneListenerReceiver"
            android:enabled="true"
            android:exported="true" >

            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>

        </receiver>
    </application>

</manifest>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值