2013-06-21 86 views
0

今天,照明API已經發布,我試圖做一個簡單的應用程序,點擊一個按鈕時顯示一個閃爍的照明欄。我只是在索尼開發者網站上覆制粘貼了代碼,但是它給出錯誤,沒有處理這種意圖START_LED的行爲。 這裏的main_activity:沒有活動來處理照明意圖API

package com.example.myillumin; 

import com.sonyericsson.illumination.IlluminationIntent; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class MainActivity extends Activity { 

    private Button b1; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     b1= (Button) findViewById(R.id.button1); 
     b1.setOnClickListener(new OnClickListener(){ 
      @Override 
      public void onClick(View arg0){ 
       Intent intent=new Intent(IlluminationIntent.ACTION_START_LED); 
       intent.putExtra(IlluminationIntent.EXTRA_LED_COLOR,0xFFFF0000); 
       intent.putExtra(IlluminationIntent.EXTRA_PACKAGE_NAME, "com.example.myillumin"); 
       startActivity(intent); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 

而這裏的清單文件我試圖修改看到計算器的其他職位。

<uses-permission android:name="com.sonyericsson.illumination.permission.ILLUMINATION"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.myillumin.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.sonyericsson.illumination.IlluminationIntent" 
      android:label="@string/activity_name" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.sonyericsson.illumination.intent.action.START_LED" /> 
       <category android:name="android.intent.category.DEFAULT" />   
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

請幫我:(

回答

0

照明欄API使用「服務」來改變欄的顏色,所以你必須啓動一個服務並不是一項活動。

所以在你的代碼,

Intent intent=new Intent(IlluminationIntent.ACTION_START_LED); 
       intent.putExtra(IlluminationIntent.EXTRA_LED_COLOR,0xFFFF0000); 
       intent.putExtra(IlluminationIntent.EXTRA_PACKAGE_NAME, "com.example.myillumin"); 
       startActivity(intent); 

,而不是開始的意圖的活動,試着以創建意圖的服務來自:

startActivity(intent); 

變化到

startService(意向);

您也可以檢查設備是否支持該API調用:

Intent checkIntent = new Intent(IlluminationIntent.ACTION_STOP_LED); 
if (null == getPackageManager().resolveService(checkIntent, 
       PackageManager.GET_RESOLVED_FILTER)) { 
       // Not supported 
} 
0

爲了啓動照明服務,你必須提供的意圖與某些必填字段,你已經有了IlluminationIntent.EXTRA_PACKAGE_NAME和IlluminationIntent.ACTION_START_LED所以現在u需要添加IlluminationIntent.EXTRA_LED_ID,因此,該方法的onClick裏面添加一行:

intent.putExtra(IlluminationIntent.EXTRA_LED_ID, IlluminationIntent.VALUE_BUTTON_2); 

既然是SER副,你需要改變:

startActivity(intent); 

,取而代之的是:

startService(intent); 
相關問題