androidpn的学习研究(四)androidpn-client客户端几个类说明

发布时间:2017-6-25 6:33:46 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"androidpn的学习研究(四)androidpn-client客户端几个类说明",主要涉及到androidpn的学习研究(四)androidpn-client客户端几个类说明方面的内容,对于androidpn的学习研究(四)androidpn-client客户端几个类说明感兴趣的同学可以参考一下。

 在androidpn的客户端几个重要的类:                 ServiceManager:管理消息服务和加载相关的配置。                 ConnectivityReceiver:处理网络状态的广播。                 NotificationReceiver:处理服务端发送的推送消息。                 NotificationService:后台服务用户响应服务端的消息。需要在AndroidManifest.xml.注册。                 NotificationSettingsActivity:推送信息设置页面。                 PersistentConnectionListener:监控连接关闭和重连事件的监听。                 PhoneStateChangeListener:监听手机状态的事件监听类。                 ReconnectionThread:重连的线程类。                 Notifier:客户端发送通知的类。                 NotificationIQ:消息的数据包。     ServiceManager中获取属性信息的方法: Java代码   private Properties loadProperties() {       //        InputStream in = null;       //        Properties props = null;       //        try {       //            in = getClass().getResourceAsStream(       //                    "/org/androidpn/client/client.properties");       //            if (in != null) {       //                props = new Properties();       //                props.load(in);       //            } else {       //                Log.e(LOGTAG, "Could not find the properties file.");       //            }       //        } catch (IOException e) {       //            Log.e(LOGTAG, "Could not find the properties file.", e);       //        } finally {       //            if (in != null)       //                try {       //                    in.close();       //                } catch (Throwable ignore) {       //                }       //        }       //        return props;          Properties props = new Properties();       try {           int id = context.getResources().getIdentifier("androidpn", "raw",                   context.getPackageName());           props.load(context.getResources().openRawResource(id));       } catch (Exception e) {           Log.e(LOGTAG, "Could not find the properties file.", e);           // e.printStackTrace();       }       return props;   }       SharedPreferences的使用: Java代码   sharedPrefs = context.getSharedPreferences(           Constants.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE);   Editor editor = sharedPrefs.edit();   editor.putString(Constants.API_KEY, apiKey);   editor.putString(Constants.VERSION, version);   editor.putString(Constants.XMPP_HOST, xmppHost);   editor.putInt(Constants.XMPP_PORT, Integer.parseInt(xmppPort));   editor.putString(Constants.CALLBACK_ACTIVITY_PACKAGE_NAME,           callbackActivityPackageName);   editor.putString(Constants.CALLBACK_ACTIVITY_CLASS_NAME,           callbackActivityClassName);   editor.commit();     获取手机的设备id: Java代码   TelephonyManager       telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);           // wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);           // connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);              // Get deviceId           deviceId = telephonyManager.getDeviceId();    Notifier中发送通知的方法: Java代码   // Notification   Notification notification = new Notification();   notification.icon = getNotificationIcon();   notification.defaults = Notification.DEFAULT_LIGHTS;   if (isNotificationSoundEnabled()) {       notification.defaults |= Notification.DEFAULT_SOUND;   }   if (isNotificationVibrateEnabled()) {       notification.defaults |= Notification.DEFAULT_VIBRATE;   }   notification.flags |= Notification.FLAG_AUTO_CANCEL;   notification.when = System.currentTimeMillis();   notification.tickerText = message;      //            Intent intent;   //            if (uri != null   //                    && uri.length() > 0   //                    && (uri.startsWith("http:") || uri.startsWith("https:")   //                            || uri.startsWith("tel:") || uri.startsWith("geo:"))) {   //                intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));   //            } else {   //                String callbackActivityPackageName = sharedPrefs.getString(   //                        Constants.CALLBACK_ACTIVITY_PACKAGE_NAME, "");   //                String callbackActivityClassName = sharedPrefs.getString(   //                        Constants.CALLBACK_ACTIVITY_CLASS_NAME, "");   //                intent = new Intent().setClassName(callbackActivityPackageName,   //                        callbackActivityClassName);   //                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   //                intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);   //            }      Intent intent = new Intent(context,           NotificationDetailsActivity.class);   intent.putExtra(Constants.NOTIFICATION_ID, notificationId);   intent.putExtra(Constants.NOTIFICATION_API_KEY, apiKey);   intent.putExtra(Constants.NOTIFICATION_TITLE, title);   intent.putExtra(Constants.NOTIFICATION_MESSAGE, message);   intent.putExtra(Constants.NOTIFICATION_URI, uri);   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);   intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);   intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);   intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);      PendingIntent contentIntent = PendingIntent.getActivity(context, 0,           intent, PendingIntent.FLAG_UPDATE_CURRENT);      notification.setLatestEventInfo(context, title, message,           contentIntent);   notificationManager.notify(random.nextInt(), notification);     androidpn用户名和密码来源: XmppManager的注册任务(RegisterTask)中run方法:             if (!xmppManager.isRegistered()) {                 final String newUsername = newRandomUUID();                 final String newPassword = newRandomUUID();                 Registration registration = new Registration();                 PacketFilter packetFilter = new AndFilter(new PacketIDFilter(                         registration.getPacketID()), new PacketTypeFilter(                         IQ.class));

上一篇:win8启动黑屏解决
下一篇:mfc窗口位置设置,隐藏功能,给其他程序发送虚拟鼠标键盘消息

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。