3

私はAPI 9とストック目覚まし時計を使って、私のためだけにこのアプリを作っています。

私はこれを見つけました: http://code.google.com/p/android-alarm-database/

私の主な活動の作成では、これは次のとおりです。

ContentResolver cr = getContentResolver();
AlarmDatabase ad = new AlarmDatabase(cr);
Record r = ad.getNearestEnabledAlarm();

URI content://com.android.alarmclock/alarm を使用すると、logcat に表示されます。

Cannot resolve provider for content://com.android.alarmclock/alarm
Failed to find provider info for com.android.alarmclock

そして、私が content://com.android.deskclock/alarm で試したよりも:

Permission denied: checkComponentPermission() reqUid=10009
Permission Denial: opening provider com.android.deskclock.AlarmProvider from ProcessRecord{407cf3b0 15716:com.my.app/10137} (pid=15716, uid=10137) requires null or null
4

3 に答える 3

3

/data/data/com.android.alarmclock/databases/alarms.db (API 7-8) または /data/data/com.android.deskclock/databases/alarms.db の alarms.db ファイルのアクセス許可に注意してください。 (API 9-15) は-rw-rw----です。

これにより、URIMatcher クラスのアイデアを使用しても、db ファイルにアクセスできなくなります。

API 8 までは、アラームに使用できる特別なクラスはありませんが、API 9 以降では、エクストラをロードしたインテントを設定して、おおよその時間にアラームを設定できます。

また、この問題を解決する方法を探しています。誰かがこの混乱の完全な解決策を見つけてくれることを願っています。

于 2013-01-08T13:39:16.857 に答える
2

API 9 以降の正しい URI は「content://com.android.deskclock/alarm」です。ただし、許可の問題はまだ解決中です。

于 2012-03-14T16:01:59.370 に答える
1

開発者がアラームを設定する新しいクラスを提供しているため、次のコードでアラームを設定できます。このコードを使用します

Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
        i.putExtra(AlarmClock.EXTRA_HOUR, 11);
        i.putExtra(AlarmClock.EXTRA_MINUTES, 37);
        i.putExtra(AlarmClock.EXTRA_MESSAGE, "birthday");
        startActivity(i);

適切に機能していますが、アラームの設定を無効にする方法がわかりません。助けてください。

于 2012-04-23T07:37:01.900 に答える