我在Android应用程序中有一个要求,应用程序应该在以下两种情况下自动打开 - 当用户使用Android设备到达某个特定位置时。 - 当应用程序从服务器收到一些推送通知时。
我是android新手,在上述两种情况下,该应用程序是否有可能自动打开。
答案 0 :(得分:0)
此类提供对系统位置服务的访问。这些服务允许应用程序定期更新设备的地理位置,或在设备进入特定地理位置附近时触发应用程序指定的Intent。
答案 1 :(得分:0)
关于如何在收到推送通知时自动打开和安卓应用程序的第二个问题,从服务类内部只需输入:
Intent dialogIntent = new Intent(this, myActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);
请注意,上面的代码会切断通知声音,因此检查屏幕状态并播放一些声音可能是个好主意:
/* Check if the device is locked, play ring tone and vibrator */
if (!(((PowerManager) getSystemService(Context.POWER_SERVICE)).isScreenOn())){
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
Sound = MediaPlayer.create(getApplicationContext(), R.raw.sound);
try { Sound.start(); }
catch(Exception e){ Log.i("intentService", "Error Playing sound");}
vibrator.vibrate(3000);
}
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);
另外,不要忘记发布媒体播放器!!只是做一些研究,你会找到答案,有不同的方法,但有一种方法可以等到声音播放:
Sound.isPlaying()
然后发布:
Sound.release()
P.S:您可以将notificationSound设置为null并删除" if"条件因此将始终播放铃声(即使屏幕处于开启状态且应用程序自动打开)
setSound(null)