Android平台第三方SDK会采集用户的那些隐私数据及具体实现代码


 /**

     * 获取用户账号信息

     * <p>

     * 所需权限:android.permission.GET_ACCOUNTS

     *

     * @param context Context

     */

    public void getAccountInfo(Context context) {

        AccountManager accountManager = AccountManager.get(context);

        Account[] accounts = accountManager.getAccounts();

        for (Account account : accounts) {

            // 账号名字

            String accountName = account.name;

            // 账号类型

            String accountType = account.type;



            Log.i(TAG, "accountName = " + accountName);

            Log.i(TAG, "accountType = " + accountType);

        }

    }

三、网络相关信息

1、获取用户使用WiFi时的网络连接信息


/**

     * 获取用户使用WiFi时的网络连接信息

     *

     * @param context Context

     */

    public void getWifiNetInfo(Context context) {

        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

        // wifi状态,返回2或者3表示wifi可用

        int status = wifiManager.getWifiState();



        WifiInfo wifiInfo = wifiManager.getConnectionInfo();

        // mac地址

        String macAddress = wifiInfo.getMacAddress();

        // 返回基本服务集标识符(BSSID)当前的访问点。目前如果没有网络连接,该标识符返回0

        String bissId = wifiInfo.getBSSID();

        // 获取Ip地址

        int ipAddress = wifiInfo.getIpAddress();

        // 每个配置的网络都有一个唯一的标识,用于识别网络上执行操作时的请求者。

        // 这个方法返回当前连接网络的ID

        int networkId = wifiInfo.getNetworkId();

        // 返回当前的接收信号强度

        int rssi = wifiInfo.getRssi();

        // 当前的服务集标识符

        String ssId = wifiInfo.getSSID();

        // 当前的链接速度(网速),单位Mbps

        int linkSpeed = wifiInfo.getLinkSpeed();



        Log.i(TAG, "status = " + status);

        Log.i(TAG, "macAddress = " + macAddress);

        Log.i(TAG, "bissId = " + bissId);

        Log.i(TAG, "ipAddress = " + ipAddress);

        Log.i(TAG, "networkId = " + networkId);

        Log.i(TAG, "rssi = " + rssi);

        Log.i(TAG, "ssId = " + ssId);

        Log.i(TAG, "linkSpeed = " + linkSpeed);



    }

2、获取用户移动设备的联网信息


 public void getTelephonyInfo(Context context) {

        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

        // 手机串号:GSM手机的IMEI 和 CDMA手机的 MEID.

        String deviceId = telephonyManager.getDeviceId();

        // 返回设备的软件版本号,例如GSM手机的IMEI/SV

        String imei = telephonyManager.getDeviceSoftwareVersion();



        /* 手机类型:

         * @see #PHONE_TYPE_NONE // 无信号

         * @see #PHONE_TYPE_GSM  // GSM信号

         * @see #PHONE_TYPE_CDMA // CDMA信号

         * @see #PHONE_TYPE_SIP  // SIP信号

         */

        int phoneType = telephonyManager.getPhoneType();

        String imsi = telephonyManager.getSubscriberId();



        // 运营商名称(仅当用户已在网络注册时有效,在CDMA网络中结果也许不可靠)

        String networkOperatorName = telephonyManager.getNetworkOperatorName();

        // 注册网络的MCC+MNC

        String networkOperator = telephonyManager.getNetworkOperator();

        // 网络国家代码,MCC

        String networkCountryIso = telephonyManager.getNetworkCountryIso();



        /*

         * 当前使用的网络类型:

         * NETWORK_TYPE_UNKNOWN  网络类型未知  0

           NETWORK_TYPE_GPRS     GPRS网络  1

           NETWORK_TYPE_EDGE     EDGE网络  2

           NETWORK_TYPE_UMTS     UMTS网络  3

           NETWORK_TYPE_HSDPA    HSDPA网络  8

           NETWORK_TYPE_HSUPA    HSUPA网络  9

           NETWORK_TYPE_HSPA     HSPA网络  10

           NETWORK_TYPE_CDMA     CDMA网络,IS95A 或 IS95B.  4

           NETWORK_TYPE_EVDO_0   EVDO网络, revision 0.  5

           NETWORK_TYPE_EVDO_A   EVDO网络, revision A.  6

           NETWORK_TYPE_1xRTT    1xRTT网络  7

         */

        int networkType = telephonyManager.getNetworkType();



        // 当前网络是否处于漫游

        boolean isNetworkRoaming = telephonyManager.isNetworkRoaming();



        // 获取手机SIM卡的序列号

        String simSerialNumber = telephonyManager.getSimSerialNumber();

        // 是否有ICC卡(sim卡)

        boolean isSim = telephonyManager.hasIccCard();



        /*

         * 获取Sim卡状态,SIM的状态信息:

         SIM_STATE_UNKNOWN          未知状态 0

         SIM_STATE_ABSENT           没插卡 1

         SIM_STATE_PIN_REQUIRED     锁定状态,需要用户的PIN码解锁 2

         SIM_STATE_PUK_REQUIRED     锁定状态,需要用户的PUK码解锁 3

         SIM_STATE_NETWORK_LOCKED   锁定状态,需要网络的PIN码解锁 4

         SIM_STATE_READY            就绪状态 5

         */

        int simState = telephonyManager.getSimState();



        // 获取ISO国家码,相当于提供SIM卡的国家码。

        String simCountryIso = telephonyManager.getSimCountryIso();



        // 通话状态:无活动、响铃、摘机(接通)

        int callState = telephonyManager.getCallState();



        // 获取本机的手机号(有些手机号无法获取,是因为运营商在SIM中没有写入手机号)

        String phoneNumber = telephonyManager.getLine1Number();

        //获取语音邮件号码:

        String voiceMailNumber = telephonyManager.getVoiceMailNumber();



        /*

         * 获取数据连接的活动类型

         *

         * @see #DATA_ACTIVITY_NONE

         * @see #DATA_ACTIVITY_IN // 下行流量

         * @see #DATA_ACTIVITY_OUT // 上行流量

         * @see #DATA_ACTIVITY_INOUT

         * @see #DATA_ACTIVITY_DORMANT // 休眠

         */

        int dataActivty = telephonyManager.getDataActivity();



    }

四、设备信息类


 public void getDeviceInfo(Context context) {

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值