Test aidl

This commit is contained in:
ZhanGSKen 2025-02-14 06:01:16 +08:00
parent dfd09eb647
commit accca716d4
13 changed files with 123 additions and 121 deletions

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Fri Feb 14 03:00:55 HKT 2025 #Thu Feb 13 21:58:54 GMT 2025
stageCount=2 stageCount=2
libraryProject=libappbase libraryProject=libappbase
baseVersion=1.5 baseVersion=1.5
publishVersion=1.5.1 publishVersion=1.5.1
buildCount=0 buildCount=2
baseBetaVersion=1.5.2 baseBetaVersion=1.5.2

View File

@ -18,13 +18,15 @@
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER"/>
// 磁贴响应设置 <action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES"/>
<action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".GlobalApplication$CrashActivity"/> <activity android:name=".GlobalApplication$CrashActivity"/>
@ -34,14 +36,19 @@
android:label="@string/tileservice_name" android:label="@string/tileservice_name"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter> <intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE"/> <action android:name="android.service.quicksettings.action.QS_TILE"/>
</intent-filter> </intent-filter>
</service> </service>
<meta-data <meta-data
android:name="android.max_aspect" android:name="android.max_aspect"
android:value="4.0"/> android:value="4.0"/>
</application> </application>
</manifest> </manifest>

View File

@ -19,7 +19,7 @@ public class App extends GlobalApplication {
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
GlobalApplication.setIsDebuging(this, BuildConfig.DEBUG); GlobalApplication.setIsDebuging(this, BuildConfig.DEBUG);
mSOSCSBroadcastReceiver = new SOSCSBroadcastReceiver(this); mSOSCSBroadcastReceiver = new SOSCSBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter(); IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(SOSCSBroadcastReceiver.ACTION_SOS); intentFilter.addAction(SOSCSBroadcastReceiver.ACTION_SOS);
registerReceiver(mSOSCSBroadcastReceiver, intentFilter); registerReceiver(mSOSCSBroadcastReceiver, intentFilter);

View File

@ -9,7 +9,6 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.appbase.R; import cc.winboll.studio.appbase.R;
import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.GlobalApplication;
import cc.winboll.studio.libappbase.ISOSAPP;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView; import cc.winboll.studio.libappbase.LogView;
import cc.winboll.studio.libappbase.SOS; import cc.winboll.studio.libappbase.SOS;
@ -81,31 +80,31 @@ public class MainActivity extends AppCompatActivity {
SOS.sendToWinBoll(this); SOS.sendToWinBoll(this);
} }
public void sos() { // public void sos() {
// 创建Intent对象指定广播的action // // 创建Intent对象指定广播的action
Intent intent = new Intent(SOSCSBroadcastReceiver.ACTION_SOS); // Intent intent = new Intent(SOSCSBroadcastReceiver.ACTION_SOS);
// 目标服务的包名和类名 // // 目标服务的包名和类名
String packageName = this.getPackageName(); // String packageName = this.getPackageName();
String serviceClassName = SimpleOperateSignalCenterService.class.getName(); // String serviceClassName = SimpleOperateSignalCenterService.class.getName();
intent.putExtra(ISOSAPP.EXTRA_PACKAGE, packageName); // intent.putExtra(ISOSAPP.EXTRA_PACKAGE, packageName);
intent.putExtra(ISOSAPP.EXTRA_SERVICE, serviceClassName); // intent.putExtra(ISOSAPP.EXTRA_SERVICE, serviceClassName);
// 发送广播 // // 发送广播
sendBroadcast(intent); // sendBroadcast(intent);
LogUtils.d(TAG, "onSOS"); // LogUtils.d(TAG, "onSOS");
} // }
//
public void sos2() { // public void sos2() {
// 创建Intent对象指定广播的action // // 创建Intent对象指定广播的action
Intent intent = new Intent(SOSCSBroadcastReceiver.ACTION_SOS); // Intent intent = new Intent(SOSCSBroadcastReceiver.ACTION_SOS);
// 目标服务的包名和类名 // // 目标服务的包名和类名
String packageName = this.getPackageName(); // String packageName = this.getPackageName();
String serviceClassName = SimpleOperateSignalCenterService.class.getName(); // String serviceClassName = SimpleOperateSignalCenterService.class.getName();
intent.putExtra(ISOSAPP.EXTRA_PACKAGE, packageName); // intent.putExtra(ISOSAPP.EXTRA_PACKAGE, packageName);
intent.putExtra(ISOSAPP.EXTRA_SERVICE, serviceClassName); // intent.putExtra(ISOSAPP.EXTRA_SERVICE, serviceClassName);
// 发送广播 // // 发送广播
sendBroadcast(intent); // sendBroadcast(intent);
LogUtils.d(TAG, "onSOS2"); // LogUtils.d(TAG, "onSOS2");
} // }
} }

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Fri Feb 14 03:00:46 HKT 2025 #Thu Feb 13 21:48:00 GMT 2025
stageCount=2 stageCount=2
libraryProject=libappbase libraryProject=libappbase
baseVersion=1.5 baseVersion=1.5
publishVersion=1.5.1 publishVersion=1.5.1
buildCount=0 buildCount=2
baseBetaVersion=1.5.2 baseBetaVersion=1.5.2

View File

@ -18,7 +18,17 @@
android:label="GlobalCrashActivity" android:label="GlobalCrashActivity"
android:launchMode="standard"/> android:launchMode="standard"/>
<service android:name=".SimpleOperateSignalCenterService"/> <service android:name=".SimpleOperateSignalCenterService"
android:exported="true">
</service>
<service android:name="cc.winboll.studio.libappbase.SOSService"
android:exported="true">
<intent-filter>
<action android:name="cc.winboll.studio.libappbase.SOSService" />
</intent-filter>
</service>
<activity android:name=".LogActivity"/> <activity android:name=".LogActivity"/>

View File

@ -18,7 +18,7 @@ import android.view.Gravity;
import com.hjq.toast.ToastUtils; import com.hjq.toast.ToastUtils;
import com.hjq.toast.style.WhiteToastStyle; import com.hjq.toast.style.WhiteToastStyle;
public class GlobalApplication extends Application implements ISOSAPP { public class GlobalApplication extends Application {
public static final String TAG = "GlobalApplication"; public static final String TAG = "GlobalApplication";
@ -93,27 +93,27 @@ public class GlobalApplication extends Application implements ISOSAPP {
} }
return null; return null;
} }
//
@Override // @Override
public void helpISOSService(Intent intent) { // public void helpISOSService(Intent intent) {
String szServiceName = intent.getStringExtra(EXTRA_SERVICE); // String szServiceName = intent.getStringExtra(EXTRA_SERVICE);
String szPackageName = intent.getStringExtra(EXTRA_PACKAGE); // String szPackageName = intent.getStringExtra(EXTRA_PACKAGE);
if (szServiceName != null && !szServiceName.equals("") // if (szServiceName != null && !szServiceName.equals("")
&& szPackageName != null && !szPackageName.equals("")) { // && szPackageName != null && !szPackageName.equals("")) {
LogUtils.d(TAG, "szPackageName " + szPackageName); // LogUtils.d(TAG, "szPackageName " + szPackageName);
LogUtils.d(TAG, "szServiceName " + szServiceName); // LogUtils.d(TAG, "szServiceName " + szServiceName);
//
// 目标服务的包名和类名 // // 目标服务的包名和类名
//String packageName = this.getPackageName(); // //String packageName = this.getPackageName();
//String serviceClassName = SimpleOperateSignalCenterService.class.getName(); // //String serviceClassName = SimpleOperateSignalCenterService.class.getName();
//
// 构建Intent // // 构建Intent
Intent intentService = new Intent(); // Intent intentService = new Intent();
intentService.setComponent(new ComponentName(szPackageName, szServiceName)); // intentService.setComponent(new ComponentName(szPackageName, szServiceName));
intentService.putExtra(ISOSService.EXTRA_ENABLE, true); // intentService.putExtra(ISOSService.EXTRA_ENABLE, true);
startService(intentService); // startService(intentService);
LogUtils.d(TAG, "startService(intentService)"); // LogUtils.d(TAG, "startService(intentService)");
} // }
LogUtils.d(TAG, "helpISOSService"); // LogUtils.d(TAG, "helpISOSService");
} // }
} }

View File

@ -1,17 +0,0 @@
package cc.winboll.studio.libappbase;
import android.content.Intent;
/**
* @Author ZhanGSKen@AliYun.Com
* @Date 2025/02/13 03:49:35
* @Describe 简单 SOS 接口
*/
public interface ISOSAPP {
public static final String TAG = "ISOS";
public static final String EXTRA_PACKAGE = "EXTRA_PACKAGE";
public static final String EXTRA_SERVICE = "EXTRA_SERVICE";
public void helpISOSService(Intent intent);
}

View File

@ -0,0 +1,5 @@
// ISOSService.aidl
package cc.winboll.studio.libappbase;
interface ISOSService {
String getMessage();
}

View File

@ -1,17 +0,0 @@
package cc.winboll.studio.libappbase;
/**
* @Author ZhanGSKen@AliYun.Com
* @Date 2025/02/13 04:13:51
* @Describe 简单链接 SOS 体系的服务
*/
import android.content.Intent;
public interface ISOSService {
public static final String TAG = "ISOSService";
public static final String EXTRA_ENABLE = "EXTRA_ENABLE";
public Intent getISOSServiceIntentWhichAskForHelp();
public boolean isEnable();
}

View File

@ -14,17 +14,17 @@ public class SOSCSBroadcastReceiver extends BroadcastReceiver {
public static final String TAG = "SOSCSBroadcastReceiver"; public static final String TAG = "SOSCSBroadcastReceiver";
public static final String ACTION_SOS = SOSCSBroadcastReceiver.class.getName() + ".ACTION_SOS"; public static final String ACTION_SOS = SOSCSBroadcastReceiver.class.getName() + ".ACTION_SOS";
ISOSAPP mISOSAPP; //ISOSAPP mISOSAPP;
public SOSCSBroadcastReceiver(ISOSAPP iSOSAPP) { public SOSCSBroadcastReceiver() {
mISOSAPP = iSOSAPP; //mISOSAPP = iSOSAPP;
} }
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
String action = intent.getAction(); String action = intent.getAction();
if (action.equals(ACTION_SOS)) { if (action.equals(ACTION_SOS)) {
LogUtils.d(TAG, "ACTION_SOS"); LogUtils.d(TAG, "ACTION_SOS");
mISOSAPP.helpISOSService(intent); //mISOSAPP.helpISOSService(intent);
} else { } else {
LogUtils.d(TAG, String.format("%s", action)); LogUtils.d(TAG, String.format("%s", action));
} }

View File

@ -0,0 +1,29 @@
package cc.winboll.studio.libappbase;
/**
* @Author ZhanGSKen@AliYun.Com
* @Date 2025/02/14 05:39:44
*/
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
public class SOSService extends Service {
public static final String TAG = "SOSService";
private final ISOSService.Stub binder = new ISOSService.Stub() {
@Override
public String getMessage() throws RemoteException {
return "Hello from Service";
}
};
@Override
public IBinder onBind(Intent intent) {
return binder;
}
}

View File

@ -12,7 +12,7 @@ import android.content.Intent;
import android.os.IBinder; import android.os.IBinder;
import cc.winboll.studio.libappbase.bean.SimpleOperateSignalCenterServiceBean; import cc.winboll.studio.libappbase.bean.SimpleOperateSignalCenterServiceBean;
public class SimpleOperateSignalCenterService extends Service implements ISOSService { public class SimpleOperateSignalCenterService extends Service {
public static final String TAG = "SimpleOperateSignalCenterService"; public static final String TAG = "SimpleOperateSignalCenterService";
public static final String ACTION_ENABLE = SimpleOperateSignalCenterService.class.getName() + ".ACTION_ENABLE"; public static final String ACTION_ENABLE = SimpleOperateSignalCenterService.class.getName() + ".ACTION_ENABLE";
@ -43,11 +43,11 @@ public class SimpleOperateSignalCenterService extends Service implements ISOSSer
@Override @Override
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
LogUtils.d(TAG, "onStartCommand"); LogUtils.d(TAG, "onStartCommand");
if (intent.getBooleanExtra(ISOSService.EXTRA_ENABLE, false)) { // if (intent.getBooleanExtra(ISOSService.EXTRA_ENABLE, false)) {
LogUtils.d(TAG, "onStartCommand enable service"); // LogUtils.d(TAG, "onStartCommand enable service");
mSimpleOperateSignalCenterServiceBean.setIsEnable(true); // mSimpleOperateSignalCenterServiceBean.setIsEnable(true);
SimpleOperateSignalCenterServiceBean.saveBean(this, mSimpleOperateSignalCenterServiceBean); // SimpleOperateSignalCenterServiceBean.saveBean(this, mSimpleOperateSignalCenterServiceBean);
} // }
runMainThread(); runMainThread();
@ -63,20 +63,6 @@ public class SimpleOperateSignalCenterService extends Service implements ISOSSer
} }
} }
@Override
public Intent getISOSServiceIntentWhichAskForHelp() {
Intent intentService = new Intent();
intentService.putExtra(ISOSAPP.EXTRA_PACKAGE, this.getPackageName());
intentService.putExtra(ISOSAPP.EXTRA_SERVICE, this.getClass().getName());
return intentService;
}
@Override
public boolean isEnable() {
mSimpleOperateSignalCenterServiceBean = SimpleOperateSignalCenterServiceBean.loadBean(this, SimpleOperateSignalCenterServiceBean.class);
return mSimpleOperateSignalCenterServiceBean.isEnable();
}
@Override @Override
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
@ -84,8 +70,8 @@ public class SimpleOperateSignalCenterService extends Service implements ISOSSer
mSimpleOperateSignalCenterServiceBean = SimpleOperateSignalCenterServiceBean.loadBean(this, SimpleOperateSignalCenterServiceBean.class); mSimpleOperateSignalCenterServiceBean = SimpleOperateSignalCenterServiceBean.loadBean(this, SimpleOperateSignalCenterServiceBean.class);
if (mSimpleOperateSignalCenterServiceBean.isEnable()) { if (mSimpleOperateSignalCenterServiceBean.isEnable()) {
LogUtils.d(TAG, "mSimpleOperateSignalCenterServiceBean.isEnable()"); LogUtils.d(TAG, "mSimpleOperateSignalCenterServiceBean.isEnable()");
ISOSAPP iSOSAPP = (ISOSAPP)getApplication(); // ISOSAPP iSOSAPP = (ISOSAPP)getApplication();
iSOSAPP.helpISOSService(getISOSServiceIntentWhichAskForHelp()); // iSOSAPP.helpISOSService(getISOSServiceIntentWhichAskForHelp());
} }
if (_MainThread != null) { if (_MainThread != null) {
_MainThread.isExist = true; _MainThread.isExist = true;