- Home /
I need a local push function. so I made it using alrammanager. but it doesn't
hello. I need a local push function. so I made it using alrammanager.
it does correctly when pure android application using eclipse. but when I created a plugin and load it in unity3d, it doesn't.
I guess unity player can't recognize a BroadcastReceiver. please help me!
following is my code.
[MainActivity] public class MainActivity extends UnityPlayerActivity { public static boolean isInFront = false; private static MainActivity m_MainActivity; private static AlarmManagerBroadcastReceiver m_Alarm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
m_Alarm = new AlarmManagerBroadcastReceiver();
m_MainActivity = this;
}
public static void OutputToast()
{
final Intent intent = new Intent(m_MainActivity, AlarmManagerBroadcastReceiver.class);
m_MainActivity.runOnUiThread(new Runnable()
{
private AlarmManager alarmManager;
private PendingIntent sender;
public void run()
{
try
{
sender = PendingIntent.getBroadcast(m_MainActivity, 0, intent, 0);
Toast.makeText(m_MainActivity, "Local Push!", Toast.LENGTH_LONG).show();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 5);
alarmManager = (AlarmManager)m_MainActivity.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
Toast.makeText(m_MainActivity, "Alarm Start", Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
Log.e("Unity", "ERROR IN CODE:" + e.toString());
}
}
});
}
[AndoridManifest.xml]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.unitynotificationtest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<application
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name">
<activity
android:name="com.example.unitynotificationtest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- Broadcast receiver -->
<receiver android:name="com.exampleunitynotificationtest.AlarmManagerBroadcastReceiver" android:process = ":remote"/>
</activity>
</application>
</manifest>
Comment