이 문제를 해결하기 위해 어디에서나 조사한 결과 내 매니페스트 파일과 관련이 있음을 확신합니다. contextService = IContextInterface.Stub.asInterface(service)
에 아래의 코드와 연결을 시도 할 때, 로그에 코드 인쇄는 것을에게 그것의 널 (null)이이하려고한다면, 그래서AIDL을 사용하여 서비스에 응용 프로그램 바인딩 문제.
contextServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
contextService = IContextInterface.Stub.asInterface(service);
Toast.makeText(getApplicationContext(),
"Context Service Connected", Toast.LENGTH_SHORT)
.show();
Log.d("IApp", "Binding is done - Context Service connected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
contextService = null;
Toast.makeText(getApplicationContext(), "Service Disconnected",
Toast.LENGTH_SHORT).show();
Log.d("IRemote", "Binding - Location Service disconnected");
}
};
if (contextService == null) {
Intent contextIntent = new Intent();
contextIntent.setPackage("com.example.the_f.myapplication");
contextIntent.setAction("service.contextFinder");
bindService(contextIntent, contextServiceConnection, Context.BIND_AUTO_CREATE);
mContextIsBound = true;
if(contextService==null)
Log.d("locService","NULL");
}
나는 심지어 그것을 두 번째 시간을 확인 서비스 객체가 여전히 null 인 것을 나타내는 수동으로 바인딩합니다. 그러나 로그가 "locService : NULL"을 인쇄하기 때문에 마지막 if 문이 계속됩니다. 여기
내 클라이언트 응용 프로그램 매니페스트입니다 :<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
여기 내 원격 서비스 매니페스트입니다 :
<?xml version="1.0" encoding="utf-8"?>
내가 그것을 잘못 구축 된 생각을 유지 또는 어딘가에 묻혀있는 일부 파일에 문제가 있었기 때문에
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".MyMiddleware"
android:enabled="true"
android:exported="true"></service>
</application>
필자는이 프로그램을 3 회 다시 시작됩니다. 나는 정말로 안드로이드 프로가 아니므로 많은 것들에 대해 잘 모릅니다. 어떤 도움이나지도라도 감사 할 것입니다. 미리 감사드립니다.
당신은 onServiceConnected를 기다려야합니다. – natario
괜찮습니다. print 서술문을 onServiceConnected에 놓았고 호출되지 않았다. 나는 무엇을하고 있는지 모르겠다. 필자는 온라인에서 볼 수있는 다양한 예제를 거의 복사했습니다. 심지어 안드로이드 개발 사이트에서, 그들은 그것을 이런 식으로 설정했습니다. 그래서 분명히 내 애플 리케이션은 서비스에 연결되지 않습니다 –