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
#Fri Feb 14 03:00:55 HKT 2025
#Thu Feb 13 21:58:54 GMT 2025
stageCount=2
libraryProject=libappbase
baseVersion=1.5
publishVersion=1.5.1
buildCount=0
buildCount=2
baseBetaVersion=1.5.2

View File

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

View File

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

View File

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

View File

@ -1,8 +1,8 @@
#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
libraryProject=libappbase
baseVersion=1.5
publishVersion=1.5.1
buildCount=0
buildCount=2
baseBetaVersion=1.5.2

View File

@ -18,16 +18,26 @@
android:label="GlobalCrashActivity"
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"/>
<receiver android:name=".receiver.MyBroadcastReceiver">
<intent-filter>
<action android:name="cc.winboll.studio.libappbase.action.SOS" />
</intent-filter>
</receiver>
</application>
</manifest>

View File

@ -18,7 +18,7 @@ import android.view.Gravity;
import com.hjq.toast.ToastUtils;
import com.hjq.toast.style.WhiteToastStyle;
public class GlobalApplication extends Application implements ISOSAPP {
public class GlobalApplication extends Application {
public static final String TAG = "GlobalApplication";
@ -93,27 +93,27 @@ public class GlobalApplication extends Application implements ISOSAPP {
}
return null;
}
@Override
public void helpISOSService(Intent intent) {
String szServiceName = intent.getStringExtra(EXTRA_SERVICE);
String szPackageName = intent.getStringExtra(EXTRA_PACKAGE);
if (szServiceName != null && !szServiceName.equals("")
&& szPackageName != null && !szPackageName.equals("")) {
LogUtils.d(TAG, "szPackageName " + szPackageName);
LogUtils.d(TAG, "szServiceName " + szServiceName);
// 目标服务的包名和类名
//String packageName = this.getPackageName();
//String serviceClassName = SimpleOperateSignalCenterService.class.getName();
// 构建Intent
Intent intentService = new Intent();
intentService.setComponent(new ComponentName(szPackageName, szServiceName));
intentService.putExtra(ISOSService.EXTRA_ENABLE, true);
startService(intentService);
LogUtils.d(TAG, "startService(intentService)");
}
LogUtils.d(TAG, "helpISOSService");
}
//
// @Override
// public void helpISOSService(Intent intent) {
// String szServiceName = intent.getStringExtra(EXTRA_SERVICE);
// String szPackageName = intent.getStringExtra(EXTRA_PACKAGE);
// if (szServiceName != null && !szServiceName.equals("")
// && szPackageName != null && !szPackageName.equals("")) {
// LogUtils.d(TAG, "szPackageName " + szPackageName);
// LogUtils.d(TAG, "szServiceName " + szServiceName);
//
// // 目标服务的包名和类名
// //String packageName = this.getPackageName();
// //String serviceClassName = SimpleOperateSignalCenterService.class.getName();
//
// // 构建Intent
// Intent intentService = new Intent();
// intentService.setComponent(new ComponentName(szPackageName, szServiceName));
// intentService.putExtra(ISOSService.EXTRA_ENABLE, true);
// startService(intentService);
// LogUtils.d(TAG, "startService(intentService)");
// }
// 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 ACTION_SOS = SOSCSBroadcastReceiver.class.getName() + ".ACTION_SOS";
ISOSAPP mISOSAPP;
//ISOSAPP mISOSAPP;
public SOSCSBroadcastReceiver(ISOSAPP iSOSAPP) {
mISOSAPP = iSOSAPP;
public SOSCSBroadcastReceiver() {
//mISOSAPP = iSOSAPP;
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(ACTION_SOS)) {
LogUtils.d(TAG, "ACTION_SOS");
mISOSAPP.helpISOSService(intent);
//mISOSAPP.helpISOSService(intent);
} else {
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 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 ACTION_ENABLE = SimpleOperateSignalCenterService.class.getName() + ".ACTION_ENABLE";
@ -43,11 +43,11 @@ public class SimpleOperateSignalCenterService extends Service implements ISOSSer
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
LogUtils.d(TAG, "onStartCommand");
if (intent.getBooleanExtra(ISOSService.EXTRA_ENABLE, false)) {
LogUtils.d(TAG, "onStartCommand enable service");
mSimpleOperateSignalCenterServiceBean.setIsEnable(true);
SimpleOperateSignalCenterServiceBean.saveBean(this, mSimpleOperateSignalCenterServiceBean);
}
// if (intent.getBooleanExtra(ISOSService.EXTRA_ENABLE, false)) {
// LogUtils.d(TAG, "onStartCommand enable service");
// mSimpleOperateSignalCenterServiceBean.setIsEnable(true);
// SimpleOperateSignalCenterServiceBean.saveBean(this, mSimpleOperateSignalCenterServiceBean);
// }
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
public void onDestroy() {
super.onDestroy();
@ -84,8 +70,8 @@ public class SimpleOperateSignalCenterService extends Service implements ISOSSer
mSimpleOperateSignalCenterServiceBean = SimpleOperateSignalCenterServiceBean.loadBean(this, SimpleOperateSignalCenterServiceBean.class);
if (mSimpleOperateSignalCenterServiceBean.isEnable()) {
LogUtils.d(TAG, "mSimpleOperateSignalCenterServiceBean.isEnable()");
ISOSAPP iSOSAPP = (ISOSAPP)getApplication();
iSOSAPP.helpISOSService(getISOSServiceIntentWhichAskForHelp());
// ISOSAPP iSOSAPP = (ISOSAPP)getApplication();
// iSOSAPP.helpISOSService(getISOSServiceIntentWhichAskForHelp());
}
if (_MainThread != null) {
_MainThread.isExist = true;