2010-05-27 17 views
5

Sadece bazı kodlarla oynuyorum. Bir Aktivite oluşturmak ve basitçe böyle bir şey yapmak:Android OS 2.2 İzinler: Bu basit kod parçasının neden çalışmadığı konusunda hiçbir fikrim yok. Neyi yanlış yapıyorum?

long lo = currentTimeMillis(); 
System.out.println(lo); 

lo *= 3; 
System.out.println(lo); 

SystemClock.setCurrentTimeMillis(lo); 
System.out.println(currentTimeMillis()); 

Evet, AndroidManifest.xml, ben ekledim:

<uses-permission android:name="android.permission.SET_TIME"></uses-permission> 
<uses-permission android:name="android.permission.SET_TIME_ZONE"></uses-permission> 

Hiçbir şey değiştirir. SystemClock asla sıfırlanmaz ... sadece devam ediyor. Sadece aldığım hata, programa "SET_TIME" izninin verilmediğini söylüyor. Koruma seviyesi 3.

İzinler var ... ve 2.2 için API'da bu özelliğin şu anda desteklendiğini söylüyor. Neyi yanlış yaptığımı bilmiyorum.

Android.content.Intent; oyuna giriyor, lütfen açıkla. Amaçların ardındaki fikrin ne olduğunu anlamıyorum!

Yardımlarınız için teşekkürler! System.out.println() işlevinin Log.v() yöntemini veya benzerini kullanarak

+0

Logcat bir şey gösteriyor mu? –

cevap

12

çalışması gerekir:

ben, denemek lütfen hatayı buldum. Uygulamalar sistem saatini programatik olarak değiştiremez.

Güncelleme

SET_TIME 2.2 beri mevcuttur, ancak sadece sistem imza ile imzalanmış sistem işlemi veya uygulamalara verilebilir.

+0

http://developer.android.com/reference/android/Manifest.permission.html#SET_TIME adresine göre, API 8'den beri kullanılabilir. Fırsat nedir? – JRL

+0

Gerçekten 2.2 docs, ben sadece 2.2 yerine 2.0 kaynak kodunu kontrol ettiğini fark ettim. Karışıklık için özür dilerim. 2.2 kaynak kodunu kontrol ettim ve SET_TIME izni sadece sistem imzasıyla imzalanmış uygulamalara verilebilir. Bu, bu izni kullanamayacağınız anlamına gelir. –

+0

açıklama için teşekkürler. Belirli bir izin için koruma düzeyi herhangi bir yerde belgelenmiş mi veya kaynakta AndroidManifest.xml dosyasına bakmak mı gerekiyor? – JRL

-3

. Her iki hatta </uses-permission> çıkarın, bu bir SET_TIME_ZONE izni yoktur ama hiçbir SET_TIME izni var

+0

Günlüğü. *() Daha iyi, ancak System.out.println() çalışıyor. , ile aynıdır. İkincisi, birincinin kısa bir versiyonudur. –

+0

@Romain, 'un gerçekten boş olduğu 'un kısa bir elidir. –

2

Sistem saatini ayarlamak için SET_TIME izni ile AlarmManager'ı kullanmış gibi görünüyor :)

+0

Sadece büyük bir baş ağrısını kurtardınız. ! –

+2

Hangi API-Seviyesinde bunu test ettiniz? Her zaman bir istisna alıyorum: "java.lang.SecurityException: setTime: Ne kullanıcı 10041 ne de geçerli işlem android.permission.SET_TIME vardır." Ben izin ayarlayın: "android. Manifest'imde ".Bunu onaylayan var mı? – Hemeroc

+0

@Hemeroc Aynı burada. API düzeyi 8 üzerinde test edildi. Uygulama, sistem sertifikası ile imzalanmış gibi görünüyor. –

İlgili konular