我已經研究過無處不在來解決這個問題,並且我相當肯定它與我的清單文件有關。當試圖與下面的代碼連接與 contextService = IContextInterface.Stub.asInterface(service)
,代碼打印到日誌中,指出服務對象仍然是空將應用程序綁定到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,它會嘗試手動綁定到它。但是它仍然打到最後一條if語句,因爲日誌正在打印「locService:NULL」。
這裏是我的客戶端應用程序清單:
<?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倍,因爲我一直在想這是不正確的建設或出現在某處埋藏一些文件有問題。即時通訊不是一個真正的Android專家,所以我不知道很多事情。任何幫助或指導將不勝感激。在此先感謝
你必須等待onServiceConnected。 – natario
好的你沒錯。我將打印語句放入onServiceConnected並且未被調用。我不知道我在做什麼不同。我幾乎複製了在線看到的各種示例。即使在android dev網站上,他們也是這樣設置的。所以顯然我的應用程序永遠不會連接到服務 –