brew ISMSSTORAGE_DeleteAll怎么使用?

lingyun310 2009-12-07 06:24:41
没找到相应的资料,我是这样做的
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_SMSSTORAGE , (void**)&pMe->pISMSStorage);

ISMSSTORAGE_QueryInterface (pMe->pISMSStorage, AEEIID_MODEL , (void **)&pMe->pIModel);

IModel_AddListener(pMe->pIModel, pMe->pIModelLst);

ISMSSTORAGE_DeleteAll(pMe->pISMSStorage, (AEESMSStorageType)AEESMS_NV_CDMA, (AEECallback *)delete_cb, &(pMe->p_er));

前3步都可以,最后一步就崩了。。。

看reference里面的介绍,执行完成delete后,会发送一个EVT_MDL_SMSSTORAGE_DELETE_ALL到client, 这个client指的是当前application吗?这个event是需要listeners来接收吗?那ISMSSTORAGE_DeleteAll中定义的callback function又有什么作用呢?这个流程具体是怎么样的?

谁有这方面的资料,或者知道怎么做的,请留言,非常感谢。。。

对了,还有brew手机有lock的api吗?
...全文
1852 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
412225069 2012-06-02
  • 打赏
  • 举报
回复
各位大侠,请问这个SMSMAINCLIENT在哪添加呀,我这里找不着,是自己创建的吗
apandara 2010-11-20
  • 打赏
  • 举报
回复
楼主的问题最后是怎么解决滴?请教
bxk253387223 2009-12-15
  • 打赏
  • 举报
回复
Dependencies里面我加了一个NetWork,和一个SMSMAINCLIENT就可以啊、
iBug168 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 lingyun310 的回复:]
。。。

看reference里面的介绍,执行完成delete后,会发送一个EVT_MDL_SMSSTORAGE_DELETE_ALL到client, 这个client指的是当前application吗?这个event是需要listeners来接收吗?
。。。
[/Quote]

这个client应该就是你的Listener,也就是用来接收这个EVT的。。。。

没有环境,从字面分析的。。。

希望对LZ有所帮助。。
iBug168 2009-12-15
  • 打赏
  • 举报
回复
你应该去qualcomm的example里面看看IModel_AddListener是怎么用的。。。
pMe->pIModelLst没有初始化。。。Listener在哪,

//这里一组操作,基本上都是一起的,以成组出现的。
LISTENER_Cancel(&me->modelListener);
LISTENER_Init(&me->modelListener, BitmapWidget_ModelChanged, me);
nErr = IMODEL_AddListener(me->base.piModel, &me->modelListener);


建议你把IMODEL_AddListener换成IMODEL_AddListenerEx,然后看看IMODEL_AddListenerEx的实现,应该就明白是怎么回事了。

lingyun310 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 bxk253387223 的回复:]
还要设置Privileges中的权限。
[/Quote]

设置了啊,给的sys权限
bxk253387223 2009-12-15
  • 打赏
  • 举报
回复
还要设置Privileges中的权限。
bxk253387223 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 lingyun310 的回复:]
引用 24 楼 bxk253387223 的回复:
引用 20 楼 lingyun310 的回复:
引用 19 楼 bxk253387223 的回复:
Dependencies里面我加了一个NetWork,和一个SMSMAINCLIENT就可以啊、


为什么我的不行呢?我加了两个之后,还是create不成功,返回还是3.。。。。郁闷了
我这里成功了,返回Success

我把前面加上SMS的create instance,然后成功了,可能有依赖?
下面的问题是EVT_MDL_SMSSTORAGE_DELETE_ALL在哪里接收?
delete_cb又需要处理什么。。。。。没有真机测试,先问问,呵呵
[/Quote]
看你想干啥了,删除完成之后,告诉你删完了。App要做出相应的反应啊。
一般都是在监听函数里面判断ModelEvent所包含的事件。
lingyun310 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 bxk253387223 的回复:]
引用 20 楼 lingyun310 的回复:
引用 19 楼 bxk253387223 的回复:
Dependencies里面我加了一个NetWork,和一个SMSMAINCLIENT就可以啊、


为什么我的不行呢?我加了两个之后,还是create不成功,返回还是3.。。。。郁闷了
我这里成功了,返回Success
[/Quote]
我把前面加上SMS的create instance,然后成功了,可能有依赖?
下面的问题是EVT_MDL_SMSSTORAGE_DELETE_ALL在哪里接收?
delete_cb又需要处理什么。。。。。没有真机测试,先问问,呵呵
bxk253387223 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 lingyun310 的回复:]
引用 19 楼 bxk253387223 的回复:
Dependencies里面我加了一个NetWork,和一个SMSMAINCLIENT就可以啊、


为什么我的不行呢?我加了两个之后,还是create不成功,返回还是3.。。。。郁闷了
[/Quote]我这里成功了,返回Success
lingyun310 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 bxk253387223 的回复:]
引用 21 楼 lingyun310 的回复:
引用 17 楼 iidioter 的回复:
你应该去qualcomm的example里面看看IModel_AddListener是怎么用的。。。
pMe->pIModelLst没有初始化。。。Listener在哪,
C/C++ code//这里一组操作,基本上都是一起的,以成组出现的。  LISTENER_Cancel(&me->modelListener);
  LISTENER_Init(&me->modelListener, BitmapWidget_ModelChanged, me);
  nErr= IMODEL_AddListener(me->base.piModel,&me->modelListener);

建议你把IMODEL_AddListener换成IMODEL_AddListenerEx,然后看看IMODEL_AddListenerEx的实现,应该就明白是怎么回事了。


不好意思啊,在qualcomn中没找到有关的实例。。。。第一次接触brew,公司还催产品,都没多少时间细看


外包吧,呵呵。
[/Quote]

呵呵,就剩下这一个功能没实现了,马上就到期了。。。外包也不可能了。。
bxk253387223 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 lingyun310 的回复:]
引用 17 楼 iidioter 的回复:
你应该去qualcomm的example里面看看IModel_AddListener是怎么用的。。。
pMe->pIModelLst没有初始化。。。Listener在哪,
C/C++ code//这里一组操作,基本上都是一起的,以成组出现的。  LISTENER_Cancel(&me->modelListener);
  LISTENER_Init(&me->modelListener, BitmapWidget_ModelChanged, me);
  nErr= IMODEL_AddListener(me->base.piModel,&me->modelListener);

建议你把IMODEL_AddListener换成IMODEL_AddListenerEx,然后看看IMODEL_AddListenerEx的实现,应该就明白是怎么回事了。




不好意思啊,在qualcomn中没找到有关的实例。。。。第一次接触brew,公司还催产品,都没多少时间细看
[/Quote]

外包吧,呵呵。
lingyun310 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 iidioter 的回复:]
你应该去qualcomm的example里面看看IModel_AddListener是怎么用的。。。
pMe->pIModelLst没有初始化。。。Listener在哪,
C/C++ code//这里一组操作,基本上都是一起的,以成组出现的。 LISTENER_Cancel(&me->modelListener);
LISTENER_Init(&me->modelListener, BitmapWidget_ModelChanged, me);
nErr= IMODEL_AddListener(me->base.piModel,&me->modelListener);

建议你把IMODEL_AddListener换成IMODEL_AddListenerEx,然后看看IMODEL_AddListenerEx的实现,应该就明白是怎么回事了。


[/Quote]

不好意思啊,在qualcomn中没找到有关的实例。。。。第一次接触brew,公司还催产品,都没多少时间细看
lingyun310 2009-12-15
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 bxk253387223 的回复:]
Dependencies里面我加了一个NetWork,和一个SMSMAINCLIENT就可以啊、
[/Quote]

为什么我的不行呢?我加了两个之后,还是create不成功,返回还是3.。。。。郁闷了
bxk253387223 2009-12-14
  • 打赏
  • 举报
回复
首先MIF文件中设置Dependencies
然后修改代码:

#include "AEEModGen.h"
#include "AEEAppGen.h"
#include "AEEShell.h"
#include "AEE.h"

#include "AEETapi.h"
#include "AEEStdlib.h"
#include "AEESMS.h"
#include "AEEAddrBook.h"

#include "brew_phone_number.bid"

typedef struct _brew_phone_number {
AEEApplet a ;
AEEDeviceInfo DeviceInfo;

IShell *pIShell;
ITAPI *pITAPI;
ISMS *pISMS;

ISMSMsg *pISMSMsg;

IAddrBook *pIADDR_RUIM;
IAddrBook *pIADDR;

ISMSStorage *pISMSStorage;
uint32 p_er;
IModel *pIModel;
ModelListener *pIModelLst;
AEECallback cb;
boolean m_bGoBg;
} brew_phone_number;

static boolean brew_phone_number_HandleEvent(brew_phone_number* pMe,
AEEEvent eCode, uint16 wParam,
uint32 dwParam);
boolean brew_phone_number_InitAppData(brew_phone_number* pMe);
void brew_phone_number_FreeAppData(brew_phone_number* pMe);
void delete_cb(void *po);

int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
*ppObj = NULL;

if( ClsId == AEECLSID_BREW_PHONE_NUMBER )
{
// Create the applet and make room for the applet structure
if( AEEApplet_New(sizeof(brew_phone_number),
ClsId,
pIShell,
po,
(IApplet**)ppObj,
(AEEHANDLER)brew_phone_number_HandleEvent,
(PFNFREEAPPDATA)brew_phone_number_FreeAppData) ) // the FreeAppData function is called after sending EVT_APP_STOP to the HandleEvent function

{
//Initialize applet data, this is called before sending EVT_APP_START
// to the HandleEvent function
if(brew_phone_number_InitAppData((brew_phone_number*)*ppObj))
{
//Data initialized successfully
return(AEE_SUCCESS);
}
else
{
//Release the applet. This will free the memory allocated for the applet when
// AEEApplet_New was called.
IAPPLET_Release((IApplet*)*ppObj);
return EFAILED;
}

} // end AEEApplet_New

}

return(EFAILED);
}

static boolean brew_phone_number_HandleEvent(brew_phone_number* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
int res;
int len;
len = 20;

switch (eCode)
{
case EVT_APP_START:
res = ISHELL_CreateInstance(pMe->pIShell, AEECLSID_SMSSTORAGE , (void**)&pMe->pISMSStorage);
if(res != SUCCESS)
DBGPRINTF("create instance returns %d !\n",res);

DBGPRINTF("NOW STRING..........\n");
if(pMe->m_bGoBg) {
ISHELL_CloseApplet(pMe->pIShell, FALSE);
}

res = ISMSSTORAGE_QueryInterface (pMe->pISMSStorage, AEEIID_MODEL , (void **)&pMe->pIModel);

DBGPRINTF("____________res = %d!\n",res);

res = IModel_AddListener(pMe->pIModel, pMe->pIModelLst);
DBGPRINTF("____________res = %d!\n",res);

ISMSSTORAGE_DeleteAll(pMe->pISMSStorage, (AEESMSStorageType)AEESMS_NV_CDMA, &(pMe->cb), &(pMe->p_er));
DBGPRINTF("________________delete error: %d\n",pMe->p_er);

return(TRUE);

case EVT_MDL_SMSSTORAGE_DELETE_ALL:
DBGPRINTF("recv delete all event!!!!!!!!!!!!!!!!!!!!!!!\n");
return(TRUE);
// App is told it is exiting
case EVT_APP_STOP:
// Add your code here...
if(pMe->m_bGoBg) {
*((boolean*) dwParam) = FALSE;
}
return(TRUE);

// App is being suspended
case EVT_APP_SUSPEND:
// Add your code here...

return(TRUE);

// App is being resumed
case EVT_APP_RESUME:
// Add your code here...

return(TRUE);

case EVT_NOTIFY:
{
AEENotify* temp = (AEENotify*)dwParam;
if (temp && (temp->cls == AEECLSID_SHELL)) // event sender
{
if ((temp->dwMask & NMASK_SHELL_INIT) == NMASK_SHELL_INIT)
{
// AEECLSID_SHELLINIT ?本?用
ISHELL_StartApplet(pMe->a.m_pIShell, AEECLSID_BREW_PHONE_NUMBER);
}
}

return TRUE;
}

case EVT_APP_MESSAGE:
// Add your code here...
DBGPRINTF("in APP message\n");

return(TRUE);
case EVT_KEY:
// Add your code here...

return(TRUE);

default:
break;
}

return FALSE;
}


boolean brew_phone_number_InitAppData(brew_phone_number* pMe)
{
pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);

pMe->pIShell = pMe->a.m_pIShell;
pMe->pITAPI = NULL;
pMe->pISMS = NULL;
pMe->pISMSMsg = NULL;
pMe->pISMSStorage = NULL;
pMe->pIModelLst = (ModelListener*)MALLOC(sizeof(ModelListener));

pMe->m_bGoBg = 1;

CALLBACK_Init(&pMe->cb, delete_cb, pMe);

return TRUE;
}

void brew_phone_number_FreeAppData(brew_phone_number* pMe)
{
}

void delete_cb(void *po)
{
brew_phone_number *pMe = (brew_phone_number*)po;
DBGPRINTF("_______________delete_cb\n");
}
lingyun310 2009-12-14
  • 打赏
  • 举报
回复
不好意思,发失败了一次


FILE: brew_phone_number.c

#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions
#include "AEE.h"

#include "AEETapi.h" // TAPI Interface definitions
#include "AEEStdlib.h"
#include "AEESMS.h"
#include "AEEAddrBook.h"


#include "brew_phone_number.bid"

typedef struct _brew_phone_number {
AEEApplet a ; // First element of this structure must be AEEApplet
AEEDeviceInfo DeviceInfo; // always have access to the hardware device information

IShell *pIShell;
ITAPI *pITAPI;
ISMS *pISMS;

ISMSMsg *pISMSMsg;

IAddrBook *pIADDR_RUIM;
IAddrBook *pIADDR;

ISMSStorage *pISMSStorage;
uint32 p_er;
IModel *pIModel;
ModelListener *pIModelLst;


boolean m_bGoBg;
// add your own variables here...



} brew_phone_number;




//#define NMASK_SMS_TYPE 0x0001

static boolean brew_phone_number_HandleEvent(brew_phone_number* pMe,
AEEEvent eCode, uint16 wParam,
uint32 dwParam);
boolean brew_phone_number_InitAppData(brew_phone_number* pMe);
void brew_phone_number_FreeAppData(brew_phone_number* pMe);
void delete_cb(brew_phone_number *pMe);

static boolean brew_phone_number_HandleEvent(brew_phone_number* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
int res;
int len;
uint32 num;
byte buf[20];
len = 20;

switch (eCode)
{
// App is told it is starting up
case EVT_APP_START:
res = ISHELL_CreateInstance(pMe->pIShell, AEECLSID_SMSSTORAGE , (void**)&pMe->pISMSStorage);
if(res != SUCCESS)
DBGPRINTF("create instance returns %d !\n",res);

// Add your code here...
DBGPRINTF("NOW STRING..........\n");
if(pMe->m_bGoBg) {
ISHELL_CloseApplet(pMe->pIShell, FALSE);
}

res = ISMSSTORAGE_QueryInterface (pMe->pISMSStorage, AEEIID_MODEL , (void **)&pMe->pIModel);

DBGPRINTF("____________res = %d!\n",res);

res = IModel_AddListener(pMe->pIModel, pMe->pIModelLst);
DBGPRINTF("____________res = %d!\n",res);
ISMSSTORAGE_DeleteAll(pMe->pISMSStorage, (AEESMSStorageType)AEESMS_NV_CDMA, (AEECallback *)delete_cb, &(pMe->p_er));
DBGPRINTF("________________delete error: %d\n",pMe->p_er);

return(TRUE);

case EVT_MDL_SMSSTORAGE_DELETE_ALL:
DBGPRINTF("recv delete all event!!!!!!!!!!!!!!!!!!!!!!!\n");
return(TRUE);
// App is told it is exiting
case EVT_APP_STOP:
// Add your code here...
if(pMe->m_bGoBg) {
*((boolean*) dwParam) = FALSE;
}
return(TRUE);

// App is being suspended
case EVT_APP_SUSPEND:
// Add your code here...

return(TRUE);


// App is being resumed
case EVT_APP_RESUME:
// Add your code here...

return(TRUE);

case EVT_NOTIFY:
{
AEENotify* temp = (AEENotify*)dwParam;
if (temp && (temp->cls == AEECLSID_SHELL)) // event sender
{
if ((temp->dwMask & NMASK_SHELL_INIT) == NMASK_SHELL_INIT)
{
// AEECLSID_SHELLINIT 为本应用
ISHELL_StartApplet(pMe->a.m_pIShell, AEECLSID_BREW_PHONE_NUMBER);
}
}

return TRUE;
}



case EVT_APP_MESSAGE:
// Add your code here...
DBGPRINTF("in APP message\n");

return(TRUE);
case EVT_KEY:
// Add your code here...

return(TRUE);


// If nothing fits up to this point then we'll just break out
default:
break;
}

return FALSE;
}
boolean brew_phone_number_InitAppData(brew_phone_number* pMe)
{
pMe->pIShell = pMe->a.m_pIShell;
pMe->pITAPI = NULL;
pMe->pISMS = NULL;
pMe->pISMSMsg = NULL;
pMe->pISMSStorage = NULL;
pMe->pIModelLst = (ModelListener*)MALLOC(sizeof(ModelListener));

pMe->m_bGoBg = 1;

// if there have been no failures up to this point then return success
return TRUE;
}
void delete_cb(brew_phone_number *pMe)
{
DBGPRINTF("_______________delete_cb\n");
}

lingyun310 2009-12-14
  • 打赏
  • 举报
回复

#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions
#include "AEE.h"

#include "AEETapi.h" // TAPI Interface definitions
#include "AEEStdlib.h"
#include "AEESMS.h"
#include "AEEAddrBook.h"

#include "brew_phone_number.bid"

typedef struct _brew_phone_number {
AEEApplet a ; // First element of this structure must be AEEApplet
AEEDeviceInfo DeviceInfo; // always have access to the hardware device information

IShell *pIShell;
ITAPI *pITAPI;
ISMS *pISMS;

ISMSMsg *pISMSMsg;

IAddrBook *pIADDR_RUIM;
IAddrBook *pIADDR;

ISMSStorage *pISMSStorage;
uint32 p_er;
IModel *pIModel;
ModelListener *pIModelLst;
boolean m_bGoBg;
// add your own variables here...

} brew_phone_number;
static boolean brew_phone_number_HandleEvent(brew_phone_number* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
int res;
int len;
uint32 num;
byte buf[20];
len = 20;

switch (eCode)
{
// App is told it is starting up
case EVT_APP_START:
// AEECLSID_TAPI
//NMASK_TAPI_STATUS


res = ISHELL_CreateInstance(pMe->pIShell, AEECLSID_SMSSTORAGE , (void**)&pMe->pISMSStorage);
if(res != SUCCESS)
DBGPRINTF("create instance returns %d !\n",res);

// Add your code here...

// DBGPRINTF("NOW STRING..........\n");
// if(pMe->m_bGoBg) {
// ISHELL_CloseApplet(pMe->pIShell, FALSE);
// }

res = ISMSSTORAGE_QueryInterface (pMe->pISMSStorage, AEEIID_MODEL , (void **)&pMe->pIModel);

DBGPRINTF("____________res = %d!\n",res);

res = IModel_AddListener(pMe->pIModel, pMe->pIModelLst);
DBGPRINTF("____________res = %d!\n",res);
ISMSSTORAGE_DeleteAll(pMe->pISMSStorage, (AEESMSStorageType)AEESMS_NV_CDMA, (AEECallback *)delete_cb, &(pMe->p_er));

DBGPRINTF("________________delete error: %d\n",pMe->p_er);

return(TRUE);

case EVT_MDL_SMSSTORAGE_DELETE_ALL:
DBGPRINTF("recv delete all event!!!!!!!!!!!!!\n");
return(TRUE);
// App is told it is exiting
case EVT_APP_STOP:
// Add your code here...

if(pMe->m_bGoBg) {
*((boolean*) dwParam) = FALSE;
}

return(TRUE);


// App is being suspended
case EVT_APP_SUSPEND:
// Add your code here...

return(TRUE);


// App is being resumed
case EVT_APP_RESUME:
// Add your code here...

return(TRUE);

case EVT_NOTIFY:
{
AEENotify* temp = (AEENotify*)dwParam;
if (temp && (temp->cls == AEECLSID_SHELL)) // event sender
{
if ((temp->dwMask & NMASK_SHELL_INIT) == NMASK_SHELL_INIT)
{
// AEECLSID_SHELLINIT 为本应用
ISHELL_StartApplet(pMe->a.m_pIShell, AEECLSID_BREW_PHONE_NUMBER);
}
}

return TRUE;
}


// An SMS message has arrived for this app. Message is in the dwParam above as (char *)
// sender simply uses this format "//BREW:ClassId:Message", example //BREW:0x00000001:Hello World
case EVT_APP_MESSAGE:
// Add your code here...
DBGPRINTF("in APP message\n");

return(TRUE);

// A key was pressed. Look at the wParam above to see which key was pressed. The key
// codes are in AEEVCodes.h. Example "AVK_1" means that the "1" key was pressed.
case EVT_KEY:
// Add your code here...

return(TRUE);


// If nothing fits up to this point then we'll just break out
default:
break;
}

return FALSE;
}


// this function is called when your application is starting up
boolean brew_phone_number_InitAppData(brew_phone_number* pMe)
{
// Get the device information for this handset.
// Reference all the data by looking at the pMe->DeviceInfo structure
// Check the API reference guide for all the handy device info you can get
pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);

// Insert your code here for initializing or allocating resources...

pMe->pIShell = pMe->a.m_pIShell;
pMe->pITAPI = NULL;
pMe->pISMS = NULL;
pMe->pISMSMsg = NULL;
pMe->pISMSStorage = NULL;
pMe->pIModelLst = (ModelListener*)MALLOC(sizeof(ModelListener));

pMe->m_bGoBg = 1;

// if there have been no failures up to this point then return success
return TRUE;
}

void delete_cb(brew_phone_number *pMe)
{
DBGPRINTF("_______________delete_cb\n");
}

lingyun310 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 bxk253387223 的回复:]
首先MIF文件中设置Dependencies
[/Quote]

我在dependenc中加了AEECLSID_SMSMAINCLIENT,可是
res = ISHELL_CreateInstance(pMe->pIShell, AEECLSID_SMSMAINCLIENT , (void**)&pMe->pISMSStorage);
函数返回3,不成功。。。。是什么问题?用AEECLSID_SMSSTORAGE返回21.。。。。懵了。。。
strayedbird 2009-12-13
  • 打赏
  • 举报
回复
可能是watchdog超时重启了
bxk253387223 2009-12-11
  • 打赏
  • 举报
回复
把你的代码贴出来,然后好分析一下。
加载更多回复(8)

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧