public void onRingerPlayerCreated(MediaPlayer mRingerPlayer) { String uriString = PreferenceManager.getDefaultSharedPreferences(this) .getString( getString(R.get("string", "pref_audio_ringtone")), android.provider.Settings.System.DEFAULT_RINGTONE_URI.toString()); try { if (uriString.startsWith("content://")) { mRingerPlayer.setDataSource(this, Uri.parse(uriString)); } else { FileInputStream fis = new FileInputStream(uriString); mRingerPlayer.setDataSource(fis.getFD()); } } catch (IOException e) { Log.e(e, "Cannot set ringtone"); } }
@Override public void onCreate() { super.onCreate(); android.util.Log.d("LinphoneService", "onCreate()"); // In case restart after a crash. Main in LinphoneActivity LinphonePreferenceManager.getInstance(this); // Set default preferences PreferenceManager.setDefaultValues(this, R.get("xml", "preferences"), true); // mNotificationTitle = getString(R.get("string", "app_name")); // Dump some debugging information to the logs Log.i(START_LINPHONE_LOGS); dumpDeviceInformation(); dumpInstalledLinphoneInformation(); // mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); // mNM.cancel(INCALL_NOTIF_ID); // in case of crash the icon is not removed // mNotif = new Notification(R.get("drawable", "status_level"), "", // System.currentTimeMillis()); // mNotif.iconLevel=IC_LEVEL_ORANGE; // mNotif.flags |= Notification.FLAG_ONGOING_EVENT; // Intent notifIntent = new Intent(); // notifIntent.addCategory(Intent.CATEGORY_LAUNCHER); // notifIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | // Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); // notifIntent.setClassName(ALModuleProxy.PKG_NAME, ALModuleProxy.PKG_NAME + "." + // ALModuleProxy.ACT_NAME); // notifIntent.setAction(Intent.ACTION_MAIN); // mNotifContentIntent = PendingIntent.getActivity(this, 0, notifIntent, 0); // mNotif.setLatestEventInfo(this, mNotificationTitle,"", mNotifContentIntent); LinphoneManager.createAndStart(this, this); LinphoneManager.getLc().setPresenceInfo(0, null, OnlineStatus.Online); mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); mWifiLock = mWifiManager.createWifiLock( WifiManager.WIFI_MODE_FULL_HIGH_PERF, this.getPackageName() + "-wifi-call-lock"); mWifiLock.setReferenceCounted(false); instance = this; // instance is ready once linphone manager has been created // Retrieve methods to publish notification and keep Android // from killing us and keep the audio quality high. if (Version.sdkStrictlyBelow(Version.API05_ECLAIR_20)) { try { mSetForeground = getClass().getMethod("setForeground", mSetFgSign); } catch (NoSuchMethodException e) { Log.e(e, "Couldn't find foreground method"); } } else { try { mStartForeground = getClass().getMethod("startForeground", mStartFgSign); mStopForeground = getClass().getMethod("stopForeground", mStopFgSign); } catch (NoSuchMethodException e) { Log.e(e, "Couldn't find startGoreground or stopForeground"); } } // startForegroundCompat(NOTIF_ID, mNotif); LinphoneManager.setOnTextReceivedListener(this); if (!mTestDelayElapsed) { // Only used when testing. Simulates a 5 seconds delay for launching service mHandler.postDelayed( new Runnable() { @Override public void run() { mTestDelayElapsed = true; } }, 5000); } }