2013-04-03 49 views
1

我已经使用类似于一个代码的链接: how to change system alarm setting text dynamic 只锁定屏幕上的settext,但我的应用程序崩溃时,我运行它,任何想法我失踪了?android lockscreen settext应用程序崩溃

我mainactivty:

package l.a; 
import java.net.ContentHandler; 
import android.app.Activity; 
import android.app.KeyguardManager; 
import android.app.KeyguardManager.KeyguardLock; 
import android.content.Context; 
import android.os.Bundle; 
import android.provider.Settings; 


public class LockscreenActivity extends Activity { 

/** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Context context= getApplicationContext(); 
    KeyguardManager _guard = (KeyguardManager) 
context.getSystemService(Context.KEYGUARD_SERVICE); 
     KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper"); 
       //to disable 
     _keyguardLock.disableKeyguard(); 


     String message ="New alarm :"; 
     Settings.System.putString(this.getContentResolver(), 
       Settings.System.NEXT_ALARM_FORMATTED, message); 

       //to enable 
     _keyguardLock.reenableKeyguard(); 

} 
} 

我的清单:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="l.a" 
android:versionCode="1" 
android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="7" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK"/> 
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 

    <application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".LockscreenActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

的logcat的:

04-03 16:43:53.920: D/AndroidRuntime(486): Shutting down VM 
04-03 16:43:53.928: W/dalvikvm(486): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
04-03 16:43:53.968: E/AndroidRuntime(486): Uncaught handler: thread main exiting due to uncaught exception 
04-03 16:43:54.138: E/AndroidRuntime(486): java.lang.RuntimeException: Unable to start activity ComponentInfo{l.a/l.a.LockscreenActivity}: java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=486, uid=10040 requires android.permission.WRITE_SETTINGS 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.os.Looper.loop(Looper.java:123) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.app.ActivityThread.main(ActivityThread.java:4363) 
04-03 16:43:54.138: E/AndroidRuntime(486): at java.lang.reflect.Method.invokeNative(Native Method) 
04-03 16:43:54.138: E/AndroidRuntime(486): at java.lang.reflect.Method.invoke(Method.java:521) 
04-03 16:43:54.138: E/AndroidRuntime(486): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
04-03 16:43:54.138: E/AndroidRuntime(486): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
04-03 16:43:54.138: E/AndroidRuntime(486): at dalvik.system.NativeStart.main(Native Method) 
04-03 16:43:54.138: E/AndroidRuntime(486): Caused by: java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=486, uid=10040 requires android.permission.WRITE_SETTINGS 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.os.Parcel.readException(Parcel.java:1218) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.content.ContentProviderProxy.insert(ContentProviderNative.java:445) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.content.ContentResolver.insert(ContentResolver.java:629) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.provider.Settings$NameValueTable.putString(Settings.java:464) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.provider.Settings$System.putString(Settings.java:591) 
04-03 16:43:54.138: E/AndroidRuntime(486): at l.a.LockscreenActivity.onCreate(LockscreenActivity.java:43) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-03 16:43:54.138: E/AndroidRuntime(486): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
04-03 16:43:54.138: E/AndroidRuntime(486): ... 11 more 

回答

0

以及通过简单的阅读,我发现这个logcat的:需要android.permission.WRITE_SETTINGS在第四行的末尾。

+0

那么这真的很简单:D –

+0

谢谢,我希望我能给你一个明星,但我是一个新手,我没有信用做到这一点:( –

+0

你好,不要担心它一个简单的答案我不认为这个网站是相互帮助的,不要炫耀所有这些明星和积分(当然,这些明星和积分可以体现你的体验) –