c2dm에 대한 등록 ID를 얻기위한 응용 프로그램을 작성했습니다. 하지만 라인 startService (의도)에서 활동 구성 요소 정보를 시작할 수 없다고 Exception을 얻고 있습니다.오류 : - c2dm에 대한 등록 ID를 가져 오는 중 오류가 발생했습니다.
내 주요 클래스는
public class IdTestActivity extends Activity {
static TextView mytext = null;
Context context = null;
Intent intent = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER");
intent.putExtra("app",PendingIntent.getBroadcast(this, 0, new Intent(), 0));
intent.putExtra("sender", "[email protected]");
startService(intent);
}
}
내 수신기 클래스는
public class c2dmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.w("C2DM", "Registration Receiver called");
if ("com.google.android.c2dm.intent.REGISTRATION".equals(action)) {
Log.w("C2DM", "Received registration ID");
final String registrationId = intent
.getStringExtra("sender");
String error = intent.getStringExtra("error");
Log.d("C2DM", "dmControl: registrationId = " + registrationId
+ ", error = " + error);
// TODO Send this to my application server
}
}
}
이며 매니페스트에 권한을 추가해야처럼 내 매니페스트 파일이 보이는
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.IdTest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application>
<permission
android:name="com.IdTest.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.IdTest.permission.C2D_MESSAGE" />
<activity
android:name=".IdTestActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".c2dmReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter >
<action android:name="com.google.android.c2dm.intent.RECEIVE" >
</action>
<category android:name="com.IdTest" />
</intent-filter>
</receiver>
</application>
</manifest>
오류 당신은 무엇을 가지고된다? – Houcine
03-20 20 : 01 : 54.703 : E/AndroidRuntime (1881)의 스택 추적 추가 : java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.IdTest/com.IdTest.IdTestActivity} : java.lang .SecurityException : 허가없이 coment.android.c2dm.permission.RECEIVE 03-20 20 : 01 : 54.703 권한없이 서비스 의도 {act = com.google.android.c2dm.intent.REGISTER (부가 기능 있음)}를 시작할 수 없습니다. : E/AndroidRuntime (1881) : \t (com.IdTest.IdTestActivity.onCreate (IdTestActivity.java:32)) – user1196969